For what it's worth, although the idea of not starting with a
clean state has its advantages (not in the least being able
to support D3D10 software in a short time frame) I think
that the clean slate argument wins out for me overall.

Yes, it's more work in the short term, but I can't help
thinking of a situation down the line where something
gets done with the D3D10 framework - some as yet
unknown extension or iteration to D3D11 or whatever -
that took the library down a path that code based on
Wine's current implementation couldn't follow,
necessitating a restart from scratch later on anyway.

Worst case scenario, perhaps, but a painful one that's
probably worth thinking about. It'd be a shame if it did
happen that way and D3D10 compatibility went backwards
while it got restarted, plus there'd be a load of D3D10
cruft in the D3D9 library that would need to get culled...

--
Chris