It has been requested in the past and it is a planned feature to be able to create pages from templates. If you would like to work on that it would be fine with me since it isn't something I can get to soon. Please contact me privately and maybe we can schedule a skype to talk about it.
I would think most of the classes we use for the initial content could be re-used but I think for this purpose templates should be in a different site specific location beneath /Data/Sites/[SiteID]/contentconfig/
So a different config class to load the files into objects from there, just copy paste modify the one for initial content, a way for the user to browse and select a template, etc.
Ideally there should also be a UI for somehow creating templates that can generate the xml file and save it to disk, but maybe it does not need to be done right away but we should definitely improve the documentation for the file format as time permits and options are added.
I think it should be possible also to apply a template to an empty page that has already been created, so page creation and adding modules should be in 2 logical steps. Really page templates like we use in initial content cannot work the same way if a user is to choose a template to create a page it cannot keep creating new pages with the same url defined in the xml. During setup we know there are no conflicting pages. Maybe page creation should stay as it is in the UI but integrate into the existing Admin/Controls/PageContentWizard.ascx which is shown to editors on an empty page after initial page creation. Currently it has a list of features to create a new instance but we could also show a "Add Content From Template" option there.
1 . Sure
2. The one we use in PageSettings.aspx should work:
3. We can talk about that if you want to implement a away to configure global instances from templates.
4. I think we already have this, here is an example xml file for one of the content instances on our demo site that shows use of ModuleSettings
<?xml version="1.0" encoding="utf-8" ?>
<moduleSetting settingKey="UseScrollerSetting" settingValue="true" />
<moduleSetting settingKey="RSSFeedAllowExternalImages" settingValue="true" />