hzn: As ninja pointed out, there are lots of things in RISC OS where there can't be two concurrent states, such as the current directory, plot contexts, and alsorts of others. RISC OS would either have to enable each process to have their own, or provide some form of ugly locking API. The former's the better way, as it's more likely to work with current software, but it's a hell of a lot of work.
Also, big important parts of RISC OS aren't re-enterant (ie, FileCore), so you'd not be able to pre-empt lots of the kernel. So things like HDD and FDD access would still block everything.
Also, as I said a little earlier, I've seen loads of applications that assume nothing else will happen until they call Wimp_Poll, which is a dangerous assumption.