If it is possible for ATI to write their own back-end for the compiler that will output PS 1.4 programs, then Cg is good.
ATI should not, at any time, have to add their own function calls. The whole point of higher-order languages is to make the hardware more transparent to the programmer (Only in this way can runtime-compiled programs truly benefit from future hardware...).
Here's what I hope will become of Cg:
I hope that Cg becomes a bridge between OpenGL and Direct3D, tying the HLSL's of both together. If nVidia is very successful with Cg (which I hope...and which would require nVidia to be very open with other hardware manufacturers), then it would basically mean that nVidia wouldn't be able to control the direction of Cg. Granted, they would have lots of influence, but other hardware vendors could easily introduce their own features through Direct3D or OpenGL, features that Cg would have to support to remain the standard HLSL.
Granted, there's a lot of what-if's here, but I consider this a potential possibility, and instead of outright complaining about Cg, we should be focussing on the things nVidia needs to do to make Cg truly work.
In a worst-case scenario, in my mind, Cg will simply be a stop-gap developer tool until Direct3D and OpenGL get their own HLSL's up and running.