Could it be that the reason pure-reducers are considered the "gold standard"
is due to the fact that they guarantee the same state after each run?
Absolutely, the predictability of pure-reducers is what sets them apart. When the output relies solely on the input, testing, replaying, and maintaining a history becomes much simpler.
If that's the case, couldn't even reducers with side effects (non-pure) achieve
this property as well?
(not the common answer). That's correct too. Non-pure reducers can exhibit these qualities if handled carefully. However, it introduces more room for errors and doesn't align logically. A different perspective could consider the internal state of non-pure reducers as an additional input.
In theory, you could monitor your application state, actions, and reducer's hidden state to recreate the functionalities of pure reducers (although it would require extra code). Yet, now you have two separate sets of states to manage, increasing complexity in testing and implementation. Juggling multiple types of data leads to potential oversights and complications. Why complicate matters by concealing additional state within reducers when one centralized location suffices?
Ultimately, aside from following best practices, streamlining your system's architecture by consolidating all state management proves conceptually clearer.