I think the intent of the original design was to allow different admins for
subsites. For example my wife runs a site called judypaul.com and hosts other
sites in the same ACS instance. I added some code so that domain names
map to subsites. This allows her to give a subsite 'admin' account to each
user. Since they only admin a subsite they do not see the strange behavior
noticed above.
On another site I changed the code to inherit from the parent node. In general
I think this works better but there is a problem if there is no parent object at the
time the node is created. This happens if you create the site map structure
first then go back and add the objects. With my quick hack you end up with a
tree with no context_id's set. This is even worse than the current behavior.
I can think of three possible solutions to this problem. One if there is no parent
use the subsite object_id. Two if you add a parent with existing children fix up
the context id's. Three do nothing.
Of the three I'd choose the first since it preserves the existing functionality.
Option 2 could change permission on existing nodes.
One other change that would make things better I think is to make the site
map page site node aware. Then instead of expanding into a sub site it could
send you to the site node site map admin page. This would make it
impossible to add nodes into a subsite from multiple places which I think is
the real problem.