By your own (flawed) reasoning the fact that API-based software still does work on modern PC's demonstrates that it is doable, and thus proves that API based systems are the way forward.
...
You are misunderstanding and mixing things up. I never said that API doesn't work. I said I can find API examples that don't work just like you can find some OCS-based software that doesn't work on AGA machines. According to your FAULTY logic, no one should use APIs because it can cause trouble. But the fact that it's do-able means there's nothing wrong with it. Similarly, just because you can have some software that abused OCS registers beyond their definition, that doesn't mean that you should stop going direct to hardware. Can you ban Leander from this topic-- that's one troll that wasted my time previously and I won't deal with her side-kick bullcrap.
You're trying to have your cake and eat it. Hardware banging, in the modern age, is for embedded projects and the like. it has _no_ place whatsoever on modern desktop machines except for the implementation of hardware drivers.
Hey even for embedded stuff and hardware drivers, you have inferiority to Amiga since you have to write drivers for every graphics device, audio device, etc.
As for not being able to run old software thanks to hardware changes, I take it you forgot about features like hardware virtualisation or even emulation? After all, there's not much you could do in DOS on a 286 that you couldn't comfortably emulate today if you really wanted to.
I think there's DOSBOX, but it doesn't run Windows 3.1 and it has its limits unlike running it in native mode. Hey, if they can run Windows 3.1 in Windows XP and 98, they should be able to do it in 64-bit OSes.
Hardware banging and ignoring the OS was never truly encouraged on the Amiga (at least by the people that designed the hardware and software), you are lucky that anything worked from ECS to AGA. And, given that post AGA was set to go in wildly different directions, you'd be even luckier if anything worked beyond that.
It's a science-- nothing hodge podge like you are making it out to be. From what I have debugged, only OCS stuff not working on AGA was API-related-- making calls to wrong areas of older OSes or mixing up different memories-- fast memory, chip memory, and 16-bit/32-bit whatever.
You can assume all sorts of utterly ridiculous nonsense if, as an application developer, you view your machine as hardware up rather than software down. For example, the VBR on the 68000 was at a fixed location starting at address 0. From your standpoint, it's t thus perfectly fine when taking over the machine to put your own handlers in that first 1K of memory. And some obviously did, which is why when 68010+ based systems started appearing and the OS got the opportunity to relocate the VBR to somewhere helpful, like fast ram, their code failed miserably. And that's just from "hardware banging" the CPU, let alone assuming other facets of the system architecture would never change.
Frankly I'm glad that not too many people thought your way about development or there's no way we'd ever be using 68060, RTG or AHI. You might find it comfortable in 68000/OCS-only land, but don't assume everybody else did.
I'm so sorry you missed the point entirely. There's nothing wrong with having APi standard and hardware level compatibility. I'm glad many people banged the hardware as that's the really cool software that now exists on Amiga and is more efficient and faster than API-based stuff. Yeah, I agree processors did change but even in that case if many people utilized features that weren't doable on 68020 or later-- they would made the chip more compatible.