Understanding data-flow boundaries when choosing between a single observable store and scoped state.
In a large SwiftUI app, a team exposes all app state through one root @EnvironmentObject ObservableObject that every screen reads. Users report UI jank when unrelated fields change. From a state-architecture standpoint, what is the fundamental problem, and how do Redux-style scoped stores or atom-based (Jotai-like) libraries address it?