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.