OpenCL is framework for heterogeneous computing, that is, a program written in OpenCL should run on any plattform that supports it, and Nvidia does, among a wide range.
The main benefit of OpenCL is the ability to write the code once and to be able to run it on different platforms without changes. Normally that comes with a performance cost.
So there's a tradeoff between performance and savings in code maintenance and developing efforts. I.e, OpenCL could be a reasonable framework for a generic miner but if you are devoted to squeeze any performance bit you can, IMO you should rely on the native framework for that platform, i.e CUDA for Nvidia.