why cant we have a consistent base API rather than compatibility layers...
https://xkcd.com/927/
We got here from somewhere else. But for the record, I blame Microsoft, and I blame 3dfx for enabling them. If 3dfx had done MiniGL from the start instead of GLIDE, then we would probably have never had Direct3D. Microsoft had a basic, software-only OpenGL renderer which was famously used for screensavers like "pipes" and would have likely gone with OpenGL if it was already dominant.
But in the early days of PC video accelerators, everyone had to have their own API, and there were a ton of competing GPUs. There were around half a dozen versions of Mechwarrior II which supported different video cards — I had at least two of them, as I bought a whole bunch of those different cards to try them out. Besides VooDoo 1 and 2 in their times, and then eventually tnt, tnt2, and a gf2mx which are all kind of after the period in which this story occurs, I had a Mystique (ugly), and a PowerVR (slow), and a Permedia 2 which was actually the best of all of them at the time but just a little slower than 3dfx. I know I'm forgetting another one that I had as well, and I didn't even have all of them! Now we have all of three GPU makers, and Intel is looking shaky again...
I'm super thankful that we have Vulkan now and didn't start going back to vendor-specific standards. I think you can chalk this up to complexity. Nobody wants to have to support such things when it takes so much work to switch APIs.