Before I get started, how about consider this analogy:
Imagine the whole set up like a house. Your OS and driver model are your foundations - start messing with those and you destabilise the entire building. It might not fall down, but you probably don't want to live in it regardless of the fact it looks fine from the outside. Likewise, you can't just pick the walls, doors, windows and roof and plonk them on top of the foundations in place on the other side of the city...
So many low-level details have changed you'd either have to accept getting an XP+1 OS (e.g. XP-SP3 with all new Kernel and all new drivers) or a D3D10 -1 API (e.g. 10 syntax mapped to 9 hardware).
Why would the XP+1 option require an all new kernel? As far as I know DirectX 10 can be implemented perfectly with the old driver model, just not with the highest performance. Anyway, that wouldn't be much of a solution of course. Just like upgrading your CPU sometimes requires a new motherboard as well, DirectX 10 requires a new O.S.
You're over simplifying the relationship between the core driver stack and the API. You are aware that API just stands for
Application
Programming
Interface, right? Sure its not just some pass-through layer, but in itself it is just a standard way for us programmers to target a variety of hardware that adheres to a given standard.
Few people have access to the D3D10/WDDM functional specifications, but there are a lot of bits in it that are dependent on certain hardware requirements as well as software characteristics.
It's strongest argument is that Direct 10 cannot run on XP, but with the recent 'hack' that's just no longer true... That's why a lot of people feel Microsoft has been lying, to force gamers to upgrade to Vista.
I know Demirug sees some potential (and given how smart he is, I'm just waiting to be proven wrong
) but I don't think these "hacks" or emulators or whatever will EVER do more than get tech-demos running. To go for a sound-bite:
You won't play D3D10/Vista games on XP even if they do 'hack' the D3D10 API to run on XP.
So you make a wrapper than re-maps D3D10 calls to some OpenGL equivalent that runs on a G80 driver for XP. Same hardware but effectively just bypassing the WDDM and using GL+XPDM instead.
That assumes that OpenGL is capable of mapping all the features in exactly the same way (may sound simple, but look closely enough and you'll see that the two API's have differed over the years on how they expose hardware details).
The D3D10 API, and the application writers targetting it, are working to a fixed platform and there is relatively few ways for the API to report meaningful hardware capability/functionality problems. There is less enumeration code as the App developer can safely assume things
Just Work. The up-shot is that you rip out a Vista game to run on XP and your GL+XPDM behaves slightly differently you're going to be in a world of hurt - image quality issues being the nicer of the options here.
That's also assuming that any programmer targetting Vista+D3D10 writes perfect code. Any developer knows that, try as we might, this just doesn't happen for any sufficiently large codebase. If I accidentally write something that abuses the API slightly, but somewhere deep-down it's getting massaged and handled correctly then I'll think my code is fine and it'll pass the official QA tests. Now combine that again with the possibility of marginally different behaviour of a GL+XPDM route and you go crashing down in flames again.
Then there's a rather minor point that most builds targetting just Windows Vista will probably using a Vista SDK and may well utilize new API features that don't exist under XP. That's nothing to do with D3D10, but it may well mean that you get a whole bunch of other issues with a Vista game not working on the XP OS.
So, bottom line, you might get the SDK samples and a few tech demos running via these emulators, but I don't think you'll get any more than that.
I wonder whether Microsoft 'should' have delayed DirectX 10 itself: provide IHVs with all the details, let them market the unified cards as DirectX 9.1 or something like that, and only release DirectX 10 a year later when the drivers and games are ready and Vista is more common.
I don't think this would have worked at all if you think it through.
Nvidia/ATI have had access to the specs for YEARS - think about it, Vista was in development in some form or another for ~5 years (XP was out in 2001, and we know they turn-around quickly as there was a blog post saying that (some of) the MS engineers are already working on Vienna) and this wasn't some big surprise to them. The Direct3D Architecture Board has all the IHV's and a few key ISV's involved, so D3D10 isn't just what MS decided - it's born of all the key stakeholders inputs.
There was nothing stopping them releasing unified hardware a year or two years ago. My interpretation is that they chose not to because of market factors rather than technical ones (although the two are obviously going to be related). Why release it earlier than they have to? Why not wait till the software is ready as it gives us (the IHV's) a few extra months to better the competition?
The exact same argument applies if they released Vista without D3D10. They wouldn't have any technical requirement to release the new generation until the software was there as a lot of the functionality would go unused - where's the sense in pushing hard to get the HW to market when there is no SW? Chicken and egg anyone?
Part of the big problem is the drivers and the driver model - D3D10 is effectively a client of WDDM, so what you're proposing makes no sense here either. You've looked at it backwards.
Now, Micro$oft added a requirement specifically to this one: hardware must be capable of all what the API can request whereas D3D9 and older ones only needed the driver to allow it.
You do realise how this works with the DDI's, right? I forget the details, but the reason why previous D3D's would allow such a wide range of capabilities and hardware was that deep down it supported several DDI's - the D3D9 *API* would allow DDI7-9 drivers (although might even have gone to DDI6) whereas the D3D10 *API* only allows DDI10 drivers. You still had hardware requirements (Admittedly, not quite so strict) to be a DDI9 driver so MS putting restrictions in isn't such a new thing...