Dave,
A GUI for template building would basically let a user create content-types and basic/default associated templates from a web-based form. The content-types + templates would be usable immediately like in ETP. But instead of programmers creating content-types in code like
etp::define_content_type howto_article "HowTo Article" "HowTo Articles" {
{ author Author Authors string "cols=80" "" }
{ category Category Categories string "cols=80" "" }
{ desc_title "Description Title" "Description Titles" string "cols=80" "" }
}
Users could create content-types from a web-based form with pulldowns for each field/attribute that could be added, a text field for the attribute name, a pulldown for the associated default widget for the auto-generated basic template, etc. The content-type created is then available for all users to created pages from. Then the basic template generated could be copied and altered for more advanced users.
I have seen this functionality in other CMS's but of course now I cannot remember which ones.
There are lots of workflow UIs we could look at for examples. I know Stellant and Hyperwave have them but probably so do Midgard, OpenCMS, Typo3, etc.