По проблеме, я думаю, что тут хорошо подойдет общий интерфейс, чтобы можно было подключать сервисы. А сами сервисы, возможно, будет удобно подключать через UI с помощью компонентов или директив.
И они будут работать по общему протоколу (Interceptor pattern), и каждый реализовывать свою дополнительную логику, которая будет работать через UI.
спасибо, я подумаю еще по реализации этого всего. Не знаю, что именно смогу отрефакторить на текущем этапе, поэтому вопрос с разносом по компонентам/директивам, это очень сложный вопрос... Слишком жирный компонент, но идею принял. Спасибо.
По stateless - ты имеешь ввиду, что в экземпляр я буду передавать состояние извне. типа foo.setState(state) ? Но тогда, он же получается все равно не stateless