Part of the challenge of code broken into modules is coherence.
When code is in a monolith, it's much easier to only have coherent behaviors shown to a user.
Every bit of code was written in the context of other bits of code in the monolith.
A benefit of tight coupling!
But when code is broken down into cooperating modules, some of which don't know much about the others, it's much harder to maintain the illusion of coherence.
Much of the code was written not knowing what context it would be called in, and what other components it might be plugged into.
For example, imagine hovering over an item in a list, and the preview pane showing details of that item only updates what item it's showing seconds later.