(also I think the actual problem isn't a generic D3D9 emulation, but that a good emulation needs to implement thousands of game-specific performance and compatibility hacks which are usually taken care of by the GPU vendor or Microsoft)
Unfortunately, it looks like it's up to the application developer to support it, unless I'm reading it wrong.
[1] https://arstechnica.com/gadgets/2022/08/intel-turns-to-code-...
They may be using both of those. They mention in the video linked from the article that the driver is choosing between native and the hybrid approach where appropriate, depending on what game/app is running. Maybe they also choose between different hybrid options as well?
There's zero sense in writing a DX9 driver today. Not with the performance you can get out of DXVK. Most of the remaining popular games on DX9 will be moved to native Vulkan or DX12 at a point regardless.
And no, you cannot fully emulate all of these early 3D games, some of them will still crawl in software.
Finally, how do you port a game you do not have the source code for ?
Translation layers for a currently-intensive API like DX12 or Vulkan would be worth the criticism, and as developers most of us prefer as close to the metal as possible.
Eventually even Nvidia and AMD will drop their native DX9 drivers. It's driver bloat, and requires some level of maintenance for new GPU architectures. I expect all vendors to use D3D9On12 at a point.
It's like if our hardware directly supported DOS applications. We wouldn't need DOSBox for our Adlib emulation, but everyone agrees that DOXBox is the best approach.
The biggest DX9 titles, Starcraft 2 and CSGo, will be migrated to DX12 and Vulkan (respectively) if they continue to remain popular. CSGo itself has experimental Vulkan support on Linux already.