Nvidia seems to be betting a bit of its future on the superiority of CUDA over OpenCL for general purpose computing. They share the same model of parallelism model, but Nvidia keeps baking more support for unrestrained C++ into both the hardware and compiler (see recent addition of function tables, unified address space, general purpose cache). I think if AMD continues to focus primarily on gaming then it's just a matter of time before their cards/drivers have some slight edge in the gaming domain.
Nvidia already has grabbed a huge chunk of market and mindshare in HPC, and have stated that Fermi was developed as a compute platform as much as a GPU. The "most FPS" contest is really beside the point. AMD is going to suffer as soon as optional CUDA acceleration in common libraries becomes more widespread.
I suppose the question is why anyone would support CUDA only, instead of something like OpenCL. NVIDIA have been promoting CUDA quite aggressively for some time, but the bottom line is that even today, several years after these technologies became widely available, most mainstream applications for graphics, video, CAD etc. still don't use that power on either AMD or NVIDIA graphics cards. If CUDA really has meaningful technical advantages over OpenCL, why aren't these applications using it?