Notifications, general comments at least need to be fixed so they can be mounted once per subsite.
In cleaning up general comments I had fixed it so that the comments were keyed to a general comments package_id so that I could keep the comments seperated by the subsite under which it is mounted. Now that I think of it, storing the subsite that owns the comment would be fine. Then we just need to be able to mount a notifications or general comments instance under each subsite.
As Jeff says it might be best to make a datamodel/tcl-api package and a seperate user interface package.