Again, I feel like I should highlight a simple but non-obvious fact: you are not in fact "decoupling" anything. You're just making the existing coupling harder to understand - both for you and for the hypothetical implementation task force.
Consider a simple PacMan clone for a second. In a typical entity/component model, we'd have a Ghost entity which is a combination of a Position component and a Personality component.
Ghost would ordinarily be responsible for implementing the logic that uses Personality to determine how to manipulate Position. So far so good. We have three pieces which are inherently coupled and need to be linked to make any sense; the Ghost entity is the logical place to do this coupling, via composition.
In a standard approach, you'd then have a dedicated Player component which is a Position and a PowerPillStatus component pair. A Ghost's personality would lead them to chase (or evade) the player by querying the world for the player's position component and asking for the coordinates, and also the PowerPillStatus to know if the player can currently eat the ghost. Again, so far so good: ghosts and players and power pills are all intimately connected in the PacMan universe, so this coupling is totally fine. It has nothing to do with "just getting a game done" as you put it, but it's actually representative of good design.
In your model, we'd try to "decouple" all this. But how? The best we could do is introduce another indirection like Game, where the Game queries all the various entities and their components and implements all the logic for moving ghosts and such.
So now we have two antipatterns in our code: a Big Ball of Mud class (Game) which handles far more logic and responsibility than it should, and excess indirections/layers of abstraction.
Scale that up to something like an RTS and your world now equals pain.
My point is that judicious coupling isn't just about doing some expedient-yet-dirty thing to get a job done. Sometimes it is literally the right option.