On IRC, Dave shared with me a couple of suggestions for improvements:
First, he suggested using <include>able templates instead of the tcl procedures. That makes so much sense -- I wish I had thought of that.
Second: "there are two things i think that are most important. workflow, so if you need to complete a survey, workflow would make sure its done before advancing to the next status."
Third: "there is one other way to display stuff, using the CR you could have a item_id, and an associated template. different templates can be used depending on the context."
He said he'll post later with some more detailed comments.