Perhaps the prototypical (stereotypical?) example of a "compound document" system is OpenDoc , which assembled documents as collections of "document objects."
This approach to documents generally involves the use of object technologies such as CORBA.
Rather than building an "application," you build up objects that know how to manage some sort of document component, such as a spreadsheet, picture, chart, table, or whatever. The user then embeds documents as needed to build up the document that they are working on. OpenDoc's storage system was called Bento; it is not clear that it was ever fully released.
Sadly, this has proven to be the rule for pretty well any of the compound document frameworks - once you try extending usage beyond simple scenarios, the complexity of the possible interactions explodes, and so we don't have things more sophisticated than embedding fairly simple objects inside documents.
OpenDoc builds up documents using "object components."
Note that the OpenDOC initiative has essentially failed from a commercial perspective, and IBM made IBM OpenDOC Sources "freely available."
The GNOME and KDE projects sought to build somewhat similar "compound document" infrastructures atop CORBA; they didn't really get terribly far down this road.
Open Parts --- a free object model for Unix (wants to be an alternative to DOM/Baboon/KOM)
Bonobo is a set of language and system independant CORBA interfaces for creating reusable components (controls) and creating compound documents.
Bonobo Documentation:
CORBA and the GNOME; intro to Bonobo
On the use of CORBA in the GNOME system's compound document framework, Bonobo.
Apparently, as a "clone" of Apple's Publish and Subscribe system...