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