On the contrary, when Creative had to go from ISA sound cards to PCI ones they had a HELLOVA time making them backwards compatible. There is also an endless list of "soundblaster emulation" cards which never worked right as because they were "hardware compatible" they couldnt fix it. However if you use a higher level API and software drivers you can easily patch any compatibility problems later.
My god, I was upgrading in that era when they went from ISA to PCI for sound cards, half the time games wouldn't work properly. Oh and lets not forget, soundblaster emulation on PCI sound cards is done in SOFTWARE, at least partially. I believe its something to do with having to emulate the ISA chipset timings which is also why it did not work properly.
The switch to Direct X brilliant as you very very rarely get this sort of problem anymore, it just works. Kinda breaks your whole argument that backwards compatibility is easy.
Now when talking graphics cards things get even worse as they are so much more complicated. Do you REALLY think its cost effective to include legacy modes in every single new card you release?
As for VESA, as I understand it that is still an API but it was mostly supported via the graphics card BIOS which is the only real difference between hardware and software support anyway. That said, DOS games would always come with software VESA as many graphics cards lacked support, or supported the wrong specification. So the whole VESA introduction could just have easily been done with software drivers anyway except as people were using DOS (Win95 was not yet a large enough install base to support exclusively) it was easier to keep it in the graphics card BIOS. The instant enough people were using Win95 over pure DOS though they made the jump, as it was so much easier to support. If keeping things in hardware was as good as you say, why was it so hard to get DOS games working properly compared to once they made the jump to Windows?
The overhead can't be that bad either as games still improved when we jumped to Windows instead of DOS, despite the fact by your argument the extra power in the PC should have been stolen in API inefficiencies.
And blimey, how large do you think the graphics card BIOS would need to be in order to have backwards compatibility for ALL GPU functions? How often would it need to be patched to fix bugs? Quite frankly, its just not practical and you damn well know it. Using VESA as an argument just seems plain silly, given the above that early VESA was supported via software drivers - very much like how modern drivers support Direct3D today.
Nobody is saying that 100% accurate backwards compatibility would be a bad thing. I'm sure there are a few benefits from a developers point of view (for a few very rare unusual applications), but you have to live in reality. There is no PC standard which says your sound/graphics card must talk in this language (apart from VESA and old VGA standards), with these memory addresses, etc. There is also the little thing of evolution to think of. If you write a strict standard you are stuck with it, forever. However with an API if you find more efficient ways of doing stuff at the hardware level, the only restriction is rewriting the software driver. This is not a whole lot different to how it works at the hardware level except the risk/cost of doing it hardware level is insane (hard to fix once in production, huge BIOS to handle the translation). And no, directly pushing bits around the GPU directly is simply insanity. It was fine for Amiga because the chipset was relatively simple, but a modern graphics card GPU is going to be many times more complex than a whole Amiga so claiming that you should have the same hardware access is just plain silly.
Likewise when two competing companies make a graphics card with new functions, how on earth do you propose they would make them compatible with each other without an API? You can't develop the standard that far in advance of the actual hardware development because you are keeping your cards close to your chest to beat the competition to market with the latest features.
Again, of course a hardware level API like VESA is handy if you want to bang the hardware more directly and save yourself some CPU cycles. However nobody outside of an insane asylum is going to want that level of control. Nobody actually NEEDS that level of control.