The performance of the NV35 is not half the performance per clock as the R350, as your original statement would seem to indicate.
It would only be half if the R350 was clocked at 450 MHz. Nonetheless, in case you can't tell, the NV3x series has absolutely horrible performance with true Trilinear aniso filtering turned on, which is why they result to optimizations and cheats. Perhaps you aren't aware of many custom benchmarks of less popular games, but in many situations the NV35 actually DOES come out to be a bit over half the performance of the Radeon 9800 Pro.
Perhaps you haven't noticed, but without optimizations, the NV35 is less than half the performance of the Radeon 9800 Pro in the 3dmark2003 Pixel Shader 2.0 test.
Also, if you haven't noticed, without optimizations, the Radeon 9800 Pro is multiple times faster than the NV35 in Shadermark 2.0 tests.
The Radeon 9800 Pro is 50% faster than the NV35 in Code Creatures benchmark when optimizations have been removed from both cards.
The Radeon 9800 Pro is about 90% faster than the NV35 in Unreal II: The Awakening tests with AA and Aniso on. With just Aniso, the Radeon 9800 Pro is about 80% faster.
And the list goes on and on. I hate to be the bearer of bad news, but the pipelines of the Radeon 9800 Pro really do show compared to the NV35 when both are shown under the microscope, it's just that nVidia has kindly hidden its true performance with hacks and cheats.