What, only weeks after I threw away my (very) old OpenGL books? The reason why DirectX is used everywhere is that graphics cards have been developed to suit it better for the past 10 years or so, I thought. Also, DirectX is a more complete solution for developers including networking, audio, controller handling code ...
OpenGL ES 2.0 is actually pretty clean; the monstrosity that is other OpenGL is basically being held up by the CAD companies (such as AutoDesk) who are very conservative and don't care much about games; they just want their old code to keep running on new versions of the spec.
This simply isn't true. A number of years ago with the introduction of DirectX 10, Autodesk began transitioning several mainstay products to exclusive DirectX use under Windows (see http://archicad-talk.graphisoft.com/files/autodesk_inventor_...) Morevoer, Autodesk has moved to using a modern, unified renderer for a large number of their products. There may be other CAD companies "holding up" the "monstrosity" of dated OpenGL versions, but Autodesk is not that company. In all likelihood, the issues lies not with the CAD companies, but with their clients that refuse to upgrade their legacy applications of 10-15+ years age.
If you request an OpenGL context from your OS and ask for a core profile context, you'll get a context that's almost identical to ES2. It's shader based and all of the legacy fixed stuff is entirely gone.
> Also, DirectX is a more complete solution for developers including networking, audio, controller handling code
I gather you're talking about DirectPlay, DirectSound, and DirectInput?
They've all been deprecated and removed from modern versions of DirectX. You need to pull in other libraries to replace those portions (Games for Windows Live, XAudio2, and Windows Message Loop + XInput is one way to roll up that functionality).
Honestly DirectX is mostly just Direct3D in modern incarnations. The situation is fairly similar to modern OpenGL.