> GCD is different in that it leverages a language feature (blocks) rather than the preprocessor directives of OpenMP[...]
I had the strong impression that OpenMP was a language feature comparable to blocks. It uses #pragma's for its syntax (which is a little awkward), but #pragma isn't interpreted by the preprocessor, it's just an escape hatch for asking the compiler to invoke some language extensions without actually changing its parser.