The problem, as I understand it, isn't that 3D hardware is difficult to handle in a VM (it's not, really, you simply paravirtualise calls to the 3D hardware and translate them into libGL calls in the VM host software). The problem is that doing so in Windows is practically impossible, because of MS's licensing terms for the DDKs you need. Smart move on their part, of course, if Paravirtual D3D was considered a first-order citizen of windows in the same way that NVidia or ATI D3D was, then nobody would have any really compelling reason to use windows as any sort of on-the-metal OS.
While this holds true for both directx lower-level drivers and ICDs to suit MS OpenGL, it's possible to simply REIMPLEMENT OpenGL, as everything (barring perhaps the "WGL" parts specific to windows, i'm honestly unsure about that) is nicely standardised. This doesn't help with DirectX, so the approach to date has been to replace d3d8.dll and d3d9.dll with mingw-compiled versions of the Wine D3D dlls, which simply wrap DX in OpenGL.