One can always look as global variables equivalent to a context object that’s is passed in every function. It’s just a syntactic difference whether one constructs such data structure or uses it implicitly via globals.
What I am getting at is that when one has such gigantic data structure there is no separation of concerns.
Does one need one's separation of concerns if one's concerns shouldn't be separated in the in the first place?
Anytime one has access to a database one has access to one large global data structure that one can access from anywhere is a program.
This same concept goes for one's global state in one's game if one is making a game.