Как правило, лучше просто использовать один или другой.Но для себя, по крайней мере, я регулярно смешиваю два, и это безопасно, если все сделано правильно.
Наиболее распространенный случай, который я делаю, это когда у меня есть библиотека более низкого уровня, которая содержит потоки с использованием pthreads, ноя вызываю его в пользовательском приложении, которое использует OpenMP.
В некоторых случаях это небезопасно.Например, если вы уничтожили pthread перед тем, как выйти из всех областей OpenMP в этом потоке.