ARM on ARM emulation is never going to be a viable proposition, remember 3 MIPS is half the speed of an Archimedes A310, or if you want to experiance that today with a modern version of RISC OS, turn the cache off on a StrongARM machine, and image less than half of that. You can't get anything useful done with that level of performance.
The ideal solution of course is to have it run natively on the hardware, and of course if people can port Linux, its possible to get enough details about the hard ware to port RISC OS too - which just about could be done without official support using the available information on the HAL requirements of RISC OS 5.
However, a halfway house would be to run as much code directly on the ARM processor as possible, setting up page tables so that memory accesses outside the current active object (application, module area, or ROM) are trapped and redirected (also picking up I/O). Plus trapping SWI and other exception handlers. Unfortunately getting this level of control from the native OS is becoming more difficult as even Microsoft wise up to the dangers of poor security on Windows Mobile - under pressure from the phone companies that dont want a virus ridden mobile network. You'd probably have to put Linux on in order to do it, and by then you are going to be a bit pushed for resources on these devices.