Either make Wine/Crossover/Cedega able to emulate DX9 better or attempt to recreate DirectX in Linux natively.
And what to you is 'natively' ?
Wine has their own, native Linux versions of all the DirectX DLLs. All the code is pure Linux code.
However since neither nVidia or ATI create Linux DirectX drivers for their cards (only OpenGL drivers), all the DirectX graphics calls must be converted to OpenGL calls.
This wrapping process will lower performance slightly, but Linux being generally faster then Windows will sometimes not only make up for that Wine overhead, but even get better performance.
The only way for this to change is for all the graphics card manufacturers to start making Linux DirectX drivers, which will never happen.
Most older games could be emulated on Linux by forcing DirectX 8.
That may have been the case a year or so ago, but its far from true today.
DirectX 8 is relatively easy to convert to OpenGL.
DX8 is just as difficult to convert to OpenGL as DX9.
The reason DX8 works so well in Wine is because it has had many years to mature, where as DX9 and DX10 are relatively new.
DX10 is also apparently a lot more similar to OpenGL then previous DX versions (I havent worked with DX10 so I cannot say from experience), so DX10 might even be easier to create a wrapper for, the only problem is that developers (Wine, Cedega, Crossover) probably wont even begin DX10 support for a while because no games as yet actually 'require' it, and they still need to finish up DX9 and some DX8.