Qemu is not viable under WINCE. It has similair methods as riscose where the SEGV and mmap together allow for fast control and detection on memory areas. In WINCE there are no good equivalents.. (I may be wrong here but I have not found any pointers to such codehandling for WINCE.) Qemu does sort of dynamic recompilation of the code and assumes knowledge of the code flow to predict the behaviour for data and code. This is possible by having a 16MB translation cache. This amount of memory is very hard to come by on WINCE. Each process can only allocate 32MB in total!
Under ARM Linux all these restrictions don't apply. Qemu runs fine there and i.i.r.c. there are already people busy getting RISC OS to run under Linux/Qemu.