Die ARM sind nunmal ersteinmal als CPU für normale Computer entwickelt worden, und nicht als µC. Entsprechend ist der Zugriff auf einzelne Bits nicht so komfortabel. Dafür hat man es leichter mit 32 BIt Additionen, Multiplikationen usw. .

Wenn ich das richtig verstanden habe war beim PIC12xx eine 16 Bit Addition schon nicht ganz einfach - mich hat das unter anderem davon abgehalten mit näher mit den PICs zu beschäftigen. Es halt fast jede CPU so ihre Schwächen und Speziallitäten.

Das mit den Konstanten ist etwas verwirrend, aber die meisten Konstanten die man im Code braucht, sind nunmal eher kleine Zahlen, vor allem 0, 1 und 2. Da macht die Begrenzung schon Sinn. Wenn man dafür sorgt, dass alle OP-Codes gleich lang sind, vereinfacht das die Sache vor allem mit der Pipeline sehr. Als klassische Risk-CPU ist beim ARM halt vorgesehen das sich ein Compiler oder intelligente Assembler um solche Kleinigkeiten zu kümmern.