Some things are FP32, even in the "hacked" drivers. Texture addressing for one is always FP32 addressing.
I dont think its bad that nvidia will use FP16 instead of FP32 unless specifically asked.
Its just the same as using "int" in C/C++. You dont know the size of int, but when you use it you dont care. You just want it fast. On some systems its 32bit on some its 16bit.
IF you really need 32bit, then you make sure you get 32bit, by choosing a more appropriate integer format. The compiler merely uses the most appropriate size for the hardware.
Same thing here.. IF you dont specifically request that a certain thing _must_ be FP32, then the compiler in nvidia's drivers will optimize it to use FP16.
I cant see what the problem is, as long as the image looks right.