Late this summer the structure of the code in Tango trunk was changed such that things were grouped in more sane manner and with folders more suitably named.
However, this process showed us that the strict separation of runtime and user library only complicated matters, especially when building the user library as it depends on the runtime, and also when interfaces from the runtime needs to be exposed to the user.
We are therefore trying to resolve these issues that have been around since the start in the branch initiated by Kris, called combine. It doesn't build yet, but should give a clear picture of where we think we are moving. Feel free to chime in with comments.