Edited again because I realized that I was using 'name' to refer to two separate things.
That is an interesting idea, and I believe that it can be done using filters.
As long as you create tiddlers for each version, or at least only use the latest one, I have no idea why you wouldn't, than you can make your outline using list filters using a process that is something like this:
1) Every tiddler that is going to be in the final version, and all revisions of those tiddlers, have some tag (someTagForThingsToInculde in the example below). This includes old versions.
2) Each subject/idea that gets revisions has a unique identifier. Each tiddler holding one of the revisions of this idea has a field called `identifier` (or whatever you wish to call it) and in this field it has the name for that subject. The tiddlers themselves have some descriptive title like idea r-1 and idea r-2 or however you want to name them.
3) When you want a new version of an idea you clone the tiddler holding the current version and title it appropriately, then edit the cloned and renamed tiddler as your new version.
To display the full thing with only the latest revisions use something like this (you will probably want to make it prettier than this will be, but the structure will be the same):
<$list filter='[tag[someTagForThingsToInclude]has[identifier]each[identifier]get[identifier]]' variable=CurrentIdentifier>
<$list filter='[identifier<CurrentIdentifier>sort[created]limit[1]]'>
<$transclude/>
</$list>
</$list>
This will find all the tiddlers that are tagged with your inclusion tag, make sure that they have the field `identifier`, only take unique elements (so no duplicate entries) and then give the list of unique identifiers. (the first list widget)
For each one of those identifiers returned it will find the most recently created tiddler (the second list widget) and transclued that (the transclude widget).
You can expand this into sections with subheadings and things like that, but this will give you a basic version of what you want. The inner list widget is the most important part as far as that goes.
edit:
Oh, and to view the revisions over time you can just remove the limit[1] part and it will show all revisions in each section. Or you could use
<$list filter='[identifier[whetevernameyouwanttolookat]sort[created]]'>
<$transclude/>
</$list>
to see a list of the revisions for the things named whetevernameyouwanttolookat