when you look at it in this way, windows 98 cannot run all windows xp, visa, or 7 programs. this is due to just simply missing code and features that future programs need. windows xp cannot run certain programs from windows 95, because it can't run 16 bit programs and the OS was heavily revised in comparison.
BUT, wine has compatibility for programs from windows 3.1 to windows 7, yet there are huge gaps of functionality problems. this isn't just simply missing or changed libraries, i feel there are entire pieces of things missing altogether, and the wine developers are coming up with alternatives. one of these things is directx. when you try to substitute an ENTIRE product that has been revised for literally over a decade, it is almost futile if you are to ever expect to compete.
wine has the ability to be a perfect windows alternative but they have GOT to stop re-writing everything. if theres legal problems, just simply don't include it, but give compatibilty.