Due to few hardware versions in the early time (the Amiga 1000,2000, 500 and CD32) where still pretty much the same - main difference was the case), programming could be done close to the HW (like in consoles). This made some SW to assume the quasi standard HW (ignoring programming rules) and caused possible incompatibilities with later HW upgrades.
The way the graphics was handled in the OS was relatively close the graphics hardware with separate bitplanes instead of a straight 1 Bype per pixel mode that later became the obvious choice. This somewhat made a graphics upgrade a little tricky.
Atari had same problem with STE "upgrade" over ST. Much improved, to the point of hardcoded ST software often not running at all.
Worse is better. While Amiga RTG(and to lesser extend Atari VDI) was seldom used, Apple shipped Mac with worst video hardware imaginable, but fully featured API in rom. As a result nothing on Mac was hardware accelerated .. until everything was.
With the A1200, A3000 and A4000 there where different HW versions and also some external graphics cards. In the early days PCs had similar compatibility problems as well (e.g. assuming fixed 4.7 MHz clock and thus turbo switches).
External graphic card on Amiga (no idea about Atari) forced you to either swap cables, own two monitors, or forget about all the games. Apple made everyone go thru API and didnt care about hardware. PC maintained backwards compatibility with new versions/evolutions, hardcoded clock assumptions mostly went away past 1987 when everyone realized IBM lost the leader role to Compaq(386 deskpro). Microsoft helped with its religious devotion to backwards compatibility (yay 260 MAX_PATH length limit). Sure XMS/EMS sucked, but old software simply worked.
This is why there was little chance for worthy C64 successor, aside from maybe incorporating VIC/SID (or even just SID emulation using Paula and crude bank of samples) inside 65C816 powered Amiga. This would provide backwards compatibility, and kickstart(HA!) Amiga adoption. Instead abominations like C128 made everything worse and diluted user trust, "C64 with CPM glued to its ass, something nobody asked for. How about c64 with floppy build in? nah, lets pump c128 at TWICE the cost of 64 with no advantage to 95% of users (gamers). Whats better than 2 CPUs? 3 CPUs in C128D! more expensive than C64 and floppy bought separately, GENIUS!
Triple CPU actually. Commodore couldnt be bothered to redesign C128D build in floppy. So you had
-always turned off Z80
-8502 doing nothing after issuing disk command
-6502 handling disk, doing nothing otherwise.
3 cpus for the low low price of ... 3 cpus, almost full price of Amiga 500.
People trusted Commodore, and got screwed. 2x better on paper in all the things that didnt matter at the end. Better graphics IF you buy monitor (costing more than C128 itself), faster cpu IF you give up VIC graphic chip with its hardware sprites, more ram so you can wait twice as long for tape drive to load UNLESS you buy a floppy drive (costing more than C128 itself) :-(
C128 with additional floppy drive was the price of Atari 520ST. C128 with floppy and monitor was the price of Amiga 1000."
Commodore 'vision' of C64 successor had three (two useless) 8-bit processors, and two (one useless) graphic chips. Whole company was a train wreck, Tramiel was a questionable businessman, more preoccupied fighting price wars with competition than his own products, or financial health of the company, but at least he controlled that mess. Idiots after him had no clue.