Как можно проверить какая версия спецификации реализована в компиляторе (не обязательно gcc). Смотрел в cmake на FindOpenMP.cmake — там можно определить наличие поддержки и флаги, но не версию.
2.2 Conditional Compilation In implementations that support a preprocessor, the _OPENMP macro name is defined to have the decimal value yyyymm where yyyy and mm are the year and month designations of the version of the OpenMP API that the implementation supports. If this macro is the subject of a #define or a #undef preprocessing directive, the behavior is unspecified. For examples of conditional compilation, see Section A.3 on page 161.
«Может OpenMP это и так умеет» относилось к задаче, в которой потребовалось использовать rwlock'и. Но если в ТЗ написано «readers/writer lock», приведенный выше код выглядит рабочим.