I did some experimenting today with a proof of concept.
The outcome is two templates.
Template 1 is a simple 'rich content section creator' where you write up your paragraphs/sections whatever that you want to later select from to construct a document.
The sections can have 'variables' by surrounding a variable name in square brackets e.g. Hello [userName].
Once you have a few sections created, you save them out as an xml file.
Template 2 is a 'layout' configuration tool - it reads in the content from the saved xml files from Template 1.
You then can select any order or combination of the sections to display.
When a section is displayed with has 'variables' they are listed on the right so you can put in the value for that variable.
By manipulating the repeating group layout of the form you can construct a document from the sections.
At this stage I haven't figured out a generic delivery method for the forms from Template 1 to be accessible by Template 2.
As an interim measure, I've set that Template 2 must have the XML files from Template 1 added as secondary datasources.
This is actually quite useful, as it means copies of Template 2 can be republished and distributed with a set of 'sections' built in - allowing multiple base 'Documents styles'.
I've attached a sample Template 2 with some provided 'sections'.
To use it, save the attachment to your computer, right-click and select Design, then use Preview.
Again - this is just a mock up of a possible method for constructing the kind of solution you described
- as I was building it I thought of many similar options, like using Microsoft Word - this might prove better down the track do to Word's more advanced formatting and printing options.
I used jScript and Infopath object model extensively - but I believe the security should only need to be Domain for the template to work in a production environment.
Caveat: I had this working quite nicely on my machine - but I'm sure there is scope for errors. If you're so inclined, post them and I'll try to fix them.