Yeah, the API/engine/SDK vs direct hardware access debate comes up from time to time in programming.
The APIs simplify things a lot but you lose performance. With consoles there's only one hardware configuration so both your game and the API it uses can be optimized heavily. On the PC, with so many possible hardware combinations, that's a lot harder to do. However because PC hardware improves so rapidly any loss in performance due to a *slow* API/engine/etc. is often quickly offset by faster processors, graphics cards, etc.
DirectX is probably fairly bloated at this point as well with all the possible hardware configuration it's supposed to support. So are all the game engines that use it now. It's just hard to maintain and optimize something that big. At the same time, creating something new is just so time consuming. Even on a console you code on an API rather than directly "on the metal" so you have to rely on the API provider to do the optimizing for you.
Having said that, I think Scott is right that because consoles are the priority these days there's less time invested in optimizing games on the PC and to push the graphics even further by utilizing all the power available on the platform.