I spent a while trawling through the RISC OS kernel, and:
(a) the GUI, user facing front end, CLI, module system, etc --- sheer brilliance; consistent, orthogonal, working.
(b) the underlying OS framework and kernel: KILL IT WITH FIRE.
As an OS it's awful. All the problems of a microkernel OS *plus* all the problems of a monolithic OS *plus* all the problems of a protected memory OS *plus* all the problems of an unprotected OS, etc. The system APIs have grown organically and are weird and inconsistent and full of duplicate, but slightly different, functionality. The bottom page of each process is writeable solely to allow one or two system flags at hard coded addresses (although this may have been fixed after I complained). The main system memory allocator, of which there are several, has a huge amount of code whose purpose is to grope up the stack to find out whether the allocation routine is being called reentrantly, and if so, it follows a different code path. The purpose of this? To allow memory allocation from interrupt routines!
OTOH this huge pile of hacks (with no threading or preemptive multitasking, mind) does actually run really well on the Pi, and I deeply admire the people who've made it done so. I would encourage you to think carefully if you ever find yourself wanting to use it for anything, though.