Originally Posted by Carniphage
It would completely undermine OS X as a software development platform.
You could achieve perfect compatibility by stopping OS X development completely and switching the Mac over to Windows.
It could be more of a development layer than runtime.
This is how WINE achieves the best compatibility.
Instead of developers licensing tools from Transgaming or whatever setup they use, Apple could bundle the same thing as part of XCode.
Huge companies have a ton of legacy code mired with all sorts of Windows specific code. The effort/reward ratio for doing a solid port to the Mac is probably too high for a lot of companies to bother about.
Adding API compatibility removes a lot of effort. It means we can expect simultaneous Mac/Windows game releases for all future games as it will mean little more than a compile on any Mac with XCode.
This wouldn't encourage users who already have a code-base built for the Mac to switch to Windows APIs, especially big companies who know the importance of native code and code that isn't run from a compatibility layer, which has no guarantee of future support and feature development.
As for new developers, it may discourage them from bothering with Mac-specific development but who's to say the alternative wouldn't simply have been no Mac compatibility at all?
I would rather be able to run 3DS Max through a compatibility layer than under VMWare, Parallels or Bootcamp and be able to use Photoshop for the Mac alongside.
As people have seen from the games that already use Transgaming's Cider, you really don't notice that you're not running a native Mac app. It's true that games are different as they tend to have custom interfaces built on the graphics layer but I don't see why Apple couldn't override the interface calls to native ones so that Windows apps just appear to be Mac apps.
Move window-level menus up to the main menu when that window is in focus and add aqua/marble theme to the windows and run all the processing code through the compatibility layer.