Yes, you're right - it's not just all the modules that would have to be rewritten to cope with, well, simultaneous reentrancy, I suppose you could term it - but the whole of the operating system.
Still, I guess in one way it's lucky that RISC OS is one of the few remaining microcomputer OSes at heart, in that (interrupts aside) it doesn't do *anything* unless some code calls an OS function. It's about as deterministic as you can get.
But I'm not convinced application state is an issue. If the wimp doesn't preserve state, it means no application can rely on state, so, for example, no app will use the CSD.
But anyway, I was just pointing out that the issue of CMT vs. PMT was not directly related to the issue of MP - which is a whole can of worms whatever way you look at it.
Regarding filecore blocking on I/O, if it were possible to introduce a new asynchronous API or something along those lines, it'd be a great improvement to the responsiveness of the OS, PMT or no PMT, MP or no MP.