Ты можешь делать единый стейт и вкладывать компоненты прямо себе в стейт. Тогда будет неприятность с тем, чтобы прокидывать месседжи редьюсеру компонента и интегрировать результаты в единый стейт
Аналогично, можешь делать независимые черные коробочки а-ля MVICore, но с каждой коробочкой стейт все больше будет дробиться и тебе придется все больше думать о том, как и в какой последовательности связывать коробочки, как у них настроить жц и DI
Я для себя выбрал подход с единым стейтом, так как мне кажется, что такое проще скейлить. Начинаю на следующей неделе петпроджект, в котором доведу до абсолюта. Посмотрим, как оно будет работать