что тогда остается на контроллер?
А ничего не останется, и ничего особо не должно оставаться (разве что чуть чуть). Даже ваш контроллер который вы объявляете для стэйта по сути ни что иное как контроллер директивы ng-view/ui-view/ng-controller.
Все дробится на директивы, чем независимей тем лучше. Скажем если у нас есть блок с фидом последних событий - это отдельная директива, в нее инджектится сервис по получению данных. Отдельный айтем фида так же можно сделать директивой и вынести туда управление штуками - например лайки или удаление или редактирование (соответственно надо заинджектить туда сервисы для управления этим делом).
Ну и у каждой директивы свой контроллер, scope использовать только в link (собственно как и ватчеры) и в link только связывать DOM и контроллер. Как-то так. И жить с ангуляром будет чуть проще.