I know OpenCL gives control of the GPU\'s memory architecture and thus allows better optimization, but, leaving this aside, can we use Compute Shaders for vector operations (add
Look here for another perspective. Summarizing:
Yes, OpenCL already existed, but it targets heavyweight applications (think CFD, FEM, etc), and it is much more universal than OpenGL (think beyond GPUs... Intel's Xeon Phi architecture supports >50 x86 cores).
Also, sharing buffers between OpenGL/CUDA and OpenCL is not fun.