One: You need a ATI HD 5xxx gpu or better to be capable of running opencl. And as there are a lot of users that have a 4xxx or 3xxx card, this might be a problem.
Two: Calling OpenCL add's overhead time. At a certain moment, you call a function to start a opencl function. The openCL driver need's to do some stuff and then it need's to send the parameters to the GPU where the opencl program starts, and then the result is returned and again some stuff is done and THEN you have your result. I think the overhead is to large to be of use, maybe you gain some performance if you have a vector(3/4, single/double) type you will gain any performance.
I might be wrong though, I suggest you make some benchmarks (execute 5.000.000 calculations of single and double floating point numbers and get the time it takes to execute it on the cpu and on the gpu and then compare). Make these single calculations as this is what is probably mostly used. You get something like:
float flt_num = 324.234f;for(unsigned int i = 0; i < 5000000; i++){ temp float = i * flt_num;}for(unsigned int i = 0; i < 5000000; i++){ temp float = call_opencl_multiply_2f((float)i, flt_num);}
Three: This means diverting resources from the rendering engine to the scripting engine. This might be so small that you won't even notice a difference, but it could also be slowing down the rendering by a large percentage.
The two main problems are support and performance.
If you don't care about supporting older or low-end cards, you only need to run some benchmarks and then decide if you want to use opencl or not.
A sidenote, if mathematics proves such a large performance impact, try to find the bottleneck and fix that first. It is better to remove or shrink the bottleneck then to add another huge part to your scripting engine.
assainator