Hmm, it adds 1 Query to every Page being loaded, and parsing several XML Files for every Page also adds Overhead.
Global and Action Templates can already be added through Plugins, not sure if this is possible for Phrasegroups too - but I think Phrasegroups might not be an issue at all, as those moste likely would be used in additional Files anyway.
So what's left is Datastore.
I posted a somewhat similar idea @ vbulletin.com some time ago:
http://www.vbulletin.com/forum/showthread.php?t=146141
IMHO, this should not add any Overhead at all.
Or, to keep your idea:
As it requires an additional Query, what about the following:
A Table requirements with colums
- scriptid
- globaltemplates
- actiontemplates
- phrasetypes
- specialtemplates
- product
- area
init.php would then query this table for the current scriptid/area, joined on products that are active.
Then merge the results with the current values and continue execution.