I agree with you. In my opinion the best solution is something like this:
A. Create a windowing system that looks and feels like the RO windowing system that can be used by programs written specifically for it.
B. Provide the basic programs required by users (Icon Bar, Backdrop, Filer, Switcher, etc.) using that system.
(To make the filer responsive, the OS would have to support filetypes stored in the directory. I think this could make the kernel incompatible with existing Linux filesystems, since I can't see a way to extract that information even from an ADFS filesystem.)
Then, either (to run Firefox, basically):
C. Create a GDK (GDK - An intermediate layer which isolates GTK+ from the details of the windowing system.) to allow some GNOME programs to be run.
D. Modify the GNOME programs you want to work (or commonly use) to use the RO GUI paradigms (icon bar icon, icon menu with global options, context sensitive pop up menus on open windows, etc.).
E. Have an X-Server program to run any other applications not yet converted. (Yes, I know what it says on the ROX website, and I respectfully disagree; one advantage of this approach is that you do not need to have the X-Server running.)
Or (to run RO applications):
F. Create a mapping library (or set of libraries) that provide the functionality of OSLib to C programs, using the interface to the above windowing system and other free libraries, like freetype2.
G. Create a library that maps from SWI calls and parameters to calls to the above library. (This could probably largely be achieved by modifying the code generation software in the OSLib library.)
H. Use that library to provide SWI implementations for Brandy (BBC BASIC) and QEMU (ARM emulation) to that library.
I. Provide a RO OSCLI interpreter or a translator to bash commands.
Or, or course, both. I suspect that whichever option gets implemented first, someone would start on the other, because it's there.