@AlexB, Каждый компонент приложения - автономный черный ящик. ))))
Это хорошая практика, я в своих проектах часто делаю "rootScope" для каждого более-менее независимого компонента: топ-меню, алерты, модальные диалоги, так же можно и дочерние компоненты...
Таким образом например если есть страница с комментариями, и каждый комментарий содержит свой изолированный функционал (например 500 watch, хотя это много для коммента), то на странице с 200 комментариями итого будет 500x200 = 100K watch-ей, но при работе сканироваться будут только конкретные комментарии, т.е. всего 500 watch, а это всего 1 - 10мс
Так же такие четные ящики можно переносить из проекта в проект.
А в Angular.js, все обычно под одним rootScope.