Zmiennych globalnych można używać, natomiast odradzałbym tego, chyba że dokładnie wiesz, co robisz.
Taka zmienna jest widziana w całym kodzie, więc trzeba cały czas mieć w pamięci, co ona przechowuje i co z tego wynika.
Ja bym używał takich zmiennych tylko do tych danych, które z jakiegoś powodu są globalne z definicji. Na przykład tworząc grę, globalnym zrobiłbym wskaźnik na strukturę obrazu, po którym rysuję.