As long as one programmed through the OS API, things were guaranteed to work. Even the AGA CustomChips were backwards compatible with ECS, just as ECS was backwards compatible with OCS: the addresses were the same, and so were the control / function bits in them. Newer ChipSets simply added additional CustomChip registers. The biggest source of incompatibility on the Amiga were the processors, as newer ones introduced instruction and data caches: software which used self-modifying code, a concept taken over from the C=64 would crash instantly due to cache being out of sync with memory.
Hardware expansion was and remains a breeze with the AutoConfig protocol and the Zorro-II and Zorro-III expansion buses. Many people run their Amigas with additional sound and graphics cards. There are even PCI bridge expansion cards.
My main concern is that if you have a publicly documented chip that explicitly concerns itself with timing it makes it very hard to shave off cycles in the future.
The Apple IIhad similar problems. Woz moved a lot of stuff to software to save chips but it causes compatibility issues in the future.
Hardware expansion was and remains a breeze with the AutoConfig protocol and the Zorro-II and Zorro-III expansion buses. Many people run their Amigas with additional sound and graphics cards. There are even PCI bridge expansion cards.