So, here's my dream feature for TinyCLR OS : The ability to pull in relocatable .obj/.lib components via nuget. Those modules would get linked in like RLP modules at compile-time.
"But Martin, that would require a full ARM toolchain (or at least, linker)!": Actually, no. All it needs is a limited tool to adjust the relocatable objects - no symbol resolution or optimization required.
Then, also expose some api's (like ethernet) through pure virtual interfaces and pointers to vtbls at known addresses, and you have a real RLP power tool, and the ability to do things like AllJoyn without either a) taxing people who don't want that feature or b) eating all your netmf program space and heap by trying to do it in managed code.
With such a feature, you can have a really tiny kernel, and then add in native-code features that you really care about at compile time.