Using a Drupal book for our pattern library, we achieve all of those requirements except for that ability to switch sites" (not sure what that is) and part of the application bits -- we do, however, grant access to specific outsiders based on roles/permissions.