Cube layer doesn't have actual functions. That's just class definitions and provides unity methods for sharing resources. For example, XCube_Delegate aims to .NET delegate, but PHP can do simple callback without XCube_Delegate. But,if each programer takes different callback mechanism for each other, it is not good exhangable. Cube has other definitions --- XCube_Service, XCube_Role, XCube_Principal, XCube_Root and etc. End users don't need to understand them, because these features are not an actual solution.
The full-plugin architecture like OGRE ad Cube has to define unity methods for "exangability" --- the power of exchange. Cube exists to do it.
For example, with using LEGO blocks, you can make your favorite model. But, you have to use attachment of LEGO blocks to join blocks, even if you don't like these attachments. You can use various LEGO blocks, but these blocks must have the LEGO attachment. In a word, LEGO defines attachments.
I think that end-users of LEGO don't discuss about the LEGO attachement. They enjoy making their art, publishing it, sharing it and watching arts of others.
When we think about solutions for end-users, we have to develop a base module (sub-core) or improve it, on Cube.
Umm..., here is a good movie that I used in OSC. The movie shows what Cube is. But, I don't finish translating it to English yet...