Gegenfrage. Was spricht gegen globale Variablen?
Unter anderem dass man nur schwer überblicken kann wer diese wo und wann zuweist. Und auch die Zusammenhänge sind schwerer nachzuvollziehen, wenn man nur die Variable sieht.
Und wegen der Kommentare:
Bei uns gibt es im Quelltext kaum Kommentare. Dafür ist die Bezeichnung der Variablen gut und ausführlich. Und vor allem ist die Struktur so, dass auch da die Bedeutung des Kontextes klar ist.
Beispiel:
Eine Funktion SuppressAll sagt nichts aus. Ruft man aber UdpEvents.SuppressAll auf, weiß man auch ganz ohne Kommentar was gemeint ist. (Übrigens ein ähnlicher Effekt wie bei with.)
Noch mehr steht ja unter dem Link von Uwe Raabe.