I also wish to know if deep encapsulation of components is possible. So far, I believe that all components have same level of hierarchy and the Core components appear in same project root, and the only means to hide them from plain view is to set a visibility property ''show in catalog' in component->symbol->properties, which can be 'undone' by Creator option 'show hidden components'.
So as I mentioned on another post a component can be implemented in one of 3 ways:
If you implement a component using a schematic, the underlying component's APIs will still be generated, and it is usually a good idea to create nice wrappers around them (specifically the start, stop, sleep and wakeup) so that users don't need to go hunting for the standard functions. The user can still call the underlying component APIs of course, but that's not very user friendly.
There is another item that should be mentioned here, schematic macros.
If the item your building does not require any code, (you just want the component or components setup in a specific way) you can create a schematic macro. This is just a shortcut for a particular setup of one or more components (and their wiring). This basically is a lightweight component, where the user can modify the pieces after it is dropped.
Select the items you want in the schematic, right click and generate macro.