Well strictly speaking we could "always" have had a separate ConfigWidget class, so that isn't new to Kovid's changes. Speaking for myself I didn't before now because stuff just kind of evolved organically and it was easier for me to find when you only had one file to "go to the bottom". Similarly you don't "have" to have a separate one now (if you inline all your imports). It is just an awful lot nicer
As for globals, I feel your pain. Having rediscovered the world of circular dependencies in Python when I did my first semi-complex plugin migration I decided not to get too carried away with splitting stuff out at this point. Particularly when the IDE isn't cooperating in telling you about stuff that isn't referenced correctly etc, just way too much re-testing involved.
I'll describe what I have done - if someone has a better suggestion please feel free to suggest it as I would love to feel better about it. The general pattern in my plugins is:
common_utils.py - utility functions commonly accesed (no constants/variables though). This is linked and shared across my plugins.
config.py - contains my ConfigWidget class for customization, the JSON config file global reference, any constants related to keys within it, and all dialogs that configuration requires. No dependencies other than common_utils.py.
action.py - my InterfaceAction class, depends on config.py for JSON file/constants (and dialogs below)
dialogs.py - if the InterfaceAction launches any dialogs, I put them in here.
Now if I move the JSON file reference and related constants into a separate file (which sounds like you have done), then it would make it possible for me to split further without the circular references. So for instance dialogs launched by the ConfigWidget could be split out.
However, this is not C# (where I put every class in its own file) so I'm prepared to compromise with the above. I'm not exactly in love with Python - as far as I am concerned it is a necessary "evil" that has made possible writing plugins. Far too unproductive to develop with thanks to it's everything is an object/weak typing etc that makes the IDE support abysmal for part-timers like me!