I just find that using global variables for things that aren't truly global in scope, leads me astray.
I'm not really talking Construct 2 here, more Javascript and programming in general. I'm a total C2 noob, so I can't say one way or the other about your solution. What do you mean "everything dynamic"?
I personally try to keep everything relating to an object within that object as much as I can.
So for example I like to put position and rotation stuff in the object that handles collision, and animation logic and the like into the object that handles sprite changes. Even though I might otherwise be tempted to handle things like "is the player shooting" or "where is the player" globally since there is only one player.
oreilly.com/javascript/excerpts/javascript-good-parts/awful-parts.html