Ich würde es als Konstruktionseigenschaft bezeichnen, nicht als
Konstruktionsfehler. Binse: Komplexe Konstruktionen haben komplexere
Verhaltensweisen als einfache Konstruktionen. Wenn man sie nutzt, muss
man damit leben, mehr Dinge beachten zu müssen, als bei einfachen
Konstruktionen.
Dies setzt sich nahezu beliebig fort. So bieten komplexe Systeme
vielleicht verschiedene Zugangswege zum gleichen Speicher, mit
unterschiedlichen Eigenschaften und unterschiedlicher Zugriffszeit. Dann
gibt es Regeln, wie man damit umzugehen hat, sonst fällt man auf die
Nase und sieht die gleichen Daten gleichzeitig in unterschiedlichem
Zustand.
Hat man mehrere Cores mit teils getrennten und teils gemeinsamen Caches,
dazu dann noch DMA, verkompliziert sich das weiter. Den Vorteil höherer
Performance erkauft man sich mit hässlichen teils schwer zu findenden
Fehlern, wenn man sich nicht an den zunehmenden Satz von Regeln hält.
Mit AVRs hat man es einfacher - aber weniger leistungsfähig.