Thinking about this, much of what I need could be acheived if the acs-subsite package could be treated as a service by other applications instead of an application.
The only real stumbling block I can see is that subsite::get looks up the parent subsite info by searching for a package with a package_key equal to 'acs-subsite'. Is there any reason why modifying subsite::get, so that packages other than acs-subsite could register themselves as valid subsites, would be bad?
(a couple of other places in the code use site_node_closest_ancestor_package "acs-subsite" explicitly but not many)