This seems totally reasonable but wasn’t the original problem that RiscOS was 26bit Arm?
At some point was updated to 32 bit, you can run it on a Raspberry Pi.
For code the limitation was baked into the architecture itself. The bottom two bits of the program counter were used to define the current execution mode (and always output as 0 to fetch word aligned instructions) while the top six bits were the status flag. That meant that saving the PC to the stack saved the whole execution context in a single memory write and it only took one read to restore it.
Fixing this required moving the flags to a separate register, which was a very visible change.