I used to feel that way. That's why I stopped and have suggested to not use variables in a way that get's you stuck like that.
Global variables should be instead on an object that exists globally. Such as a Dictionary. For my self I make a Dictionary and call it global. Even if I don't use the Set/Get of the dictionary I just attach variables. Then I use the globals in a way such as global.var.
When I need local vars they are always embded in a Group and only that group of Events will ever use them. Using local vars in a parent group can and has screwed me up. So I stopped. So if I do need to move stuff around I move things by the group as a whole.
After a few months of using C2 in the way it was meant to be used. Procedural programming. It caused far more headaches than it's worth. It's why I believe that procedural is the wrong design choice. but nothing to do about it. The best thing to do now is just design a OOP structure inside c2 system and stick with it.
So while I agree this is a usefull feature. it's a problem that can be worked around. But hey. I won't complain if it is added and I will certainly make use of it in some way. I still make the occasional variable fopaw.