Почему GLSL очень редко используют для GPGPU?
Потому что GLSL(+OpenGL) предназначен для отрисовки картинки. Чтоб делать параллельные вычисления с помощью OpenGL+GLSL, нужно изгаляться, представлять данные в виде текстуры, а все вычисления — как блендинг текстур. Это примерно как вырезать гланды через попу. OpenCL же был создан как стандарт, аналогичный OpenGL, но не для отрисовки, а для параллельных вычислений. 
Вот эта статья ответит на все ваши вопросы habrahabr.ru/post/72247/
Особенно обратите внимание на врезку (3-й абзац), там написано почему редко используются OpenGL+GLSL. Ну а в конце статьи написано почему OpenCL такой медленный на видеокартах ATI. Думаю, что OpenCL уже сейчас должен работать хорошо на новых видеокартах от ATI (либо будет в ближайшем будущем).
Никому не нужен константный прирост скорости, его можно добиться посидев ничего не делая.
Есть более важные вещи — инструментарий, сообщество, библиотеки и реюзабельность кода. CUDA бьет всех по всем фронтам, и дело не в пиаре