Templates: content::init tcl proc does what I suggested. It renders templates to a TemplateRoot folder. very handy. See this in action in acs-content-repository/www/index.vuh.
Site-notes/Folders. I still think this is the way to go. Lars agreed with me http://www.collaboraid.biz/developer/site-map
Another advantage is easy calculation of urls for content items. Just find the parent_id of the item, and grab the url from the site_node url and add the cr_items.name
Use the CR to store and assign templates to content items. You can still store them in the file-system if you like. Maybe we can have a "template" storage area and put all the templates there, so a designer can FTP/CVS them in. Or better would be webDAV access to the CR templates folder.
Another idea is a way to manage includable bits of templates that can them be added to other templates.
Every site-node should have a content folder. Then its easy to manage pages under any package or site-nodes without a package mounted at them. A CMS could manage pages that would be served if other pages didn't exist. One think would would allow is to change package display templates.
Additionally site-nodes should get parameters. Similar to Lars' idea of package instance parameters. So we could add a CMSManageP to a site-node, including both site-nodes with and without packages mounted. So I could add a page to a forums package instance managed from the CMS.
Another idea is to allow CMS templates to override package templates. So I can have a message-view template assigned in the CMS to a particular forum (ideally a nice CR based forum package, but whatever) that could override the default one. It would still call message-view.tcl to generate the datasource.