Going on about how you could still bang the metal in Win98 is amusing, seeing as that was the single reason why it was such an unstable OS.
Personally, I do not want to go back to the days where I fire up a game, it crashes, and I have to hit the reboot button because said game had taken control from the OS so there was no way for the system to recover from that state. Or even if the game did not crash, often it would have corrupted the OS environment so I still had to reboot before I could do anything else.
Now compared to today, you can usually recover from any crashed state because games are using standard API OS calls so the OS knows what it needs to cleanup. You may still get some memory leaks, but at least you aren't forced to immediately reboot in order to continue using the computer.
Lets face it, even games consoles do not bang the hardware anymore for the most part. They have an OS all their own, they multi-task and have to play nice. Even then there are still stability issues because they run as close to the metal as possible on APIs.
Oh and they also still get to optimise and improve their gaming engines (yet another API). Imagine the love if their engine had to bang the hardware directly, not to mention the complexity of porting it to other systems.
As has already been said. The greatest thing about APIs is how you can write a game on the PC and easily port it to Xbox 360. Even then there are quite enough optimisations you can do for that specific hardware, even though you are still writing for APIs. There would be no use at all for banging the hardware as developers do not have the time/money to waste tweaking their code to that degree.