After looking at the documentation it seems that I was correct. You shouldn't have to recompile for other architectures because OpenCL enumerates and utilizes resources (GPU/CPU/Cell/Etc) at runtime. A compiled OpenCL Kernel should be able to run on either company's hardware. There is a way to include what they call Native Kernels in your program. They are hardware specific - but they also aren't standard and being able to execute native kernels apparently isn't even a requirement in the standard.

Some information:
http://www.khronos.org/registry/cl/s...ncl-1.0.43.pdf
http://arstechnica.com/apple/reviews...-x-10-6.ars/15