Microsofts statement on this:
Quote: "
New HLSL Shader Compiler for Direct3D 9 Targets: No Support for 1.x Pixel Shader Targets
The December 2006 SDK includes D3DX9_32.DLL. This DLL includes the Direct3D 10 HLSL compiler enabled for Direct3D 9 targets. This compiler supports shader models only beginning with version 2.0. The new compiler has no support for 1.x pixel shader targets. This new compiler is the default for Direct3D 9. As a result, developers are encouraged to author their shaders in HLSL, and to make sure that they are using at least shader model 2.0 hardware. The legacy compiler is available by using the /LD switch.
"
No matter how good your code is, someone will improve on it