Well, RISC OS was designed for dilettantes. The OS consists of a kernel, plus independently replaceable modules (what an overloaded word that is!) which provide *commands and software interrupts, which user software can exploit. If you don't like the way something works, replace the relevant module with one of your own. That is the theory. Acorn envisaged that modules would be written in ARM assembler, but other languages are possible, and there is currently a move to rewrite as many modules as possible in C. I have even implemented Lua as a module.
It is great that you should be interested. My first microcomputer was an Acorn Atom, bought in 1979. This was followed by an Acorn BBC B, then an Archimedes. I have stuck with RISC OS ever since. My lazy excuse for not getting into other OSes was that one was enough. When I started compiling Lua for RISC OS, in 2002, I used the only C compiler then available (Norcroft, DDE). But a few years ago some talented RISC OS users began improving gcc for RISC OS and so I started to use that too (with particular thanks to Lee Noar). In fact, if you want to use hard floats and exploit VFP, Neon, etc, gcc is the only choice. I believe there has been some discussion about building RISC OS with gcc, but I suspect that there is still some way to go. It is only recently that RISC OS applications could use the ELF format. The old Acorn Image Format (AIF) does not cater for dynamic linking.
What I like most about RISC OS is the handiness of its GUI. I have the ROX-filer on my Raspbian machine, but sadly the ROX project, to bring the virtues of the RISC OS GUI to Linux, seems to have become abeyant, and is currently somewhat emasculated compared to earlier versions.