That question is a little too broad…especially since however you rig is going to determine your constraints generally. Some things I do (which are probably different from other riggers since everyone has their own workflow and preferred constraints etc):
I don’t make constraints between the groups. What I usually do (if it’s a skinned character) is just have a global_CTRL that has a scale constraint to the jnt_GRP, the globalScale_GRP and the block_GRP (since the block geo should only be parent constrained to the joints) and that’s it since the joints will scale the main geo when they’re scaled if it’s skinned.
Also something to note that could make your life easier if you have to edit the rig: create an Offset group and a Con group for all your controls (make sure they’re matched with pivot etc and the offset group has the original, unfrozen transforms). All outgoing parent constraints etc should be done from the con group and all incoming constraints to the control should go to the offset group. So your control should look like this:
globalOffset_GRP
|_global_CTRL
|_globalCon_GRP
But this is all very general and there are many exceptions/subjective situations…
Edit: well lookee there! Looks like I do something like someone else does it 