Звучит так, будто вы очень много думаете о внешнем разработчике и классифицируете свое состояние в соответствии с его отношением к пользовательскому интерфейсу.
Возможно, вы захотите подумать о том, как вы нормализуете свою форму состояния:
https://redux.js.org/recipes/structuring-reducers/normalizing-state-shape
Redux действительно крошечный бэкэнд для вашего интерфейса. Я уверен, что пуристы будут обсуждать это на миллионах уровней, но на самом деле это функционирует как маленький местный магазин документов.
Попробуйте больше думать о вашей структуре редукса с точки зрения того, что представляют собой данные, а не о том, где вы хотите разместить их на экране.
библиотека нормализатора - это следующий уровень для этого
https://github.com/paularmstrong/normalizr
Я все еще спорю, думаю ли я, что это слишком далеко. Мое приложение начинает превращаться из MVVC в MVCMVCCVMMV ... (вы понимаете, какая-то эпическая римская цифра).
Какой объем данных я хочу хранить в модели pubsub локально, по сравнению с тем, чтобы всегда использовать мой сервер API для этого?
Как долго пользователь оставляет страницу открытой, заполняя хранилище избыточных данных новыми данными, пока не возникнет проблема с памятью?
Сборка мусора в приставке - это целый дополнительный разговор, и его стоит прочитать: https://github.com/reduxjs/redux/issues/1824
Старый помощник Дан Абрамов высказывает несколько полезных мыслей в этой теме.
Я понимаю, что ни один из этих ответов сам по себе не является ответом, но похоже, что в редуксе в любом случае больше «сценариев использования», чем ответов.