HB got part of it.
Here is the skinny on DX and a general comment on how it is doing.
DX7 and earlier were all written in C++ and strongly mimicked the Windows architecture itself (GUiD's and all).
Microsoft got tired of being the step child in the 3D world and installed a new programmer, one that knew diddly about C++, but new C really well. Thus commenced the overhaul of DX. When DX8 hit the streets it was like a breath of fresh air. THe API looked like a lower level API, instead of another Windows application. Not only that, it was faster due to the lack of overhead in the new code.
This programmer carried forth his implementation to DX9, which is the leanest and fastest version of DX yet.
Unfortunately for Microsoft, this programmer is now working at ATI.
Part of DX's 'bloat' comes from supporting the all previous versions of DX in the same bundle. You can still run DX5 games under DX9, for example. This is truely an accomplishment if you know anything about DX, you know what I mean.
Another part of the bloat is Microsoft has almost the complete Windows structure under DX. Theoritically, one could write a full business class application in DX. The libraries are not available, but the messaging system is 100% active and intact. As a matter of fact, this is where most DX programmers goof. They forget to handle the messages and the result is, the game code runs about 10-15% slower.
Another are that makes it appear bloated is all the other support DX gives a dev. Input/Output, Sound, Network (on engineering hold at MS,..may go away), and other interfaces. Some people make no big deal out of this, but the device input support is a god send to any game dev that requires special devices (joysticks, mouse pads, wheels, pedals...). This is one area that makes DX a tough one to avoid.
The consistency of the API, regardless of what type of device you are dealing with, makes it easier to use. Once you get one interface down, you pretty well have a handle on all of them.
Now, OpenGL, in my opinion (and many others), has a much better pipeline architecture than DX, but as far as ease of use, today, they are pretty close to each other, as long as you are working with DX9. Feature wise, OpenGL usually defines things before DX does, but DX usually beats OpenGL to the market with the new features. Not always, but usually.
I would defer to Nutty for further comments about OpenGL.