>>20
Mono is a vast collection of libraries, as is Wine. While they provide binary compatible layers for applications that run on .NET and Windows respectively, they are (with the exception of the userspace binfmt handler in Mono) coded with massive amounts of blackbox testing in Windows. MSDN does NOT accurately document the Microsoft APIs and for the sake of compatibility, the hordes of undocumented "features" not in MSDN have to be identified, tested and implemented.
The binfmt handler in Wine and the CIL JIT in Mono are the very least of their problems (although the CIL JIT is a fairly complex thing).