Hi dalesaurus
Sure. It's a rather simple thing that I did and could also have been solved otherwise (as always).
I have a page, that holds Events (DataObjects). This page only displays events from the current year. Events from previous years aren't displayed. To still be able to view older events, there should be an archive for every year. The year has to be selectable from the navigation (second level).
So that's what I did:
EventPage -> Holds all Event DataObjects
ArchivePage -> Pulls DataObjects from the EventPage
So far so good, no transient DataObjects till now.
I used them to create a dynamic Sub-Navigation with the available archived Years under ArchivePage. Therefore I overrode the Children method in the ArchivePage to return a dynamically created DataObjectSet with the available years. To achieve that, I made use of the SQLQuery class and the handy buildDataObjectSet method. See: http://doc.silverstripe.org/doku.php?id=sqlquery#transforming_a_result_to_dataobjectset
To make the entries in the set behave like a regular child page, I created a DataObject with all required methods like: Link, Title, MenuTitle, LinkingMode etc.
Since these DataObjects are created on request (depending on years where events took place), they don't need to be stored in the DB.
Not sure if my explanation was clear and/or of any use to you ;)