если reducer изменит состояние и вернет его, то подписчики(компоненты) не будут уведомлены про его изменение, так как redux будет думать что состояние не изменилось, потому что сравнение предыдущего и следующего состояния не глубокое, а сравнивается только ссылка, и вообще в ФП рекомендуют использовать чистые функции и работать со всем иммутабельно, это облегчает дебаг и упрощает тестирование.