(1) We had examples of changed semantics of omp_in_parallel() API from OpenMP 2.0 --> 2.5. Recent incompatibility of OpenMP 4.0 and 4.5 is probably pure compiler related, but anyway, codes written for OpenMP 4.0 don't work for OpenMP 4.5 (because of changed implicit data sharing attribute of scalars in the target construct).
(2) It can be worthwhile to be able to build library for various OpenMP versions support, e.g. for matching the version supported by compiler the library is built for. It looks inelegant and confusing for customers when compiler and library declare different supported versions.
Just my 2 cents.