Вообще глобальные переменные – это плохо и ведёт в ряде случаев к типичным, но трудно уловимым и неочевидным багам.
Если вам нужно, чтобы разные вызовы разных функций имели доступ к одной и той же переменной, нужно этим функциям передать контекст. Контекстом может служить объект, куда всё необходимое добавлено в виде аргументов.
Нужно помнить о необходимости правильно и своевременно инициализировать контекст.
Думаю у aiogram есть штатный способ передачи контекста в обработчики, но в простых случаях достаточно сделать глобальную переменную и при запуске инициализировать в ней контекст. Так вам не придётся декларировать ее как глобальную в функциях, она будет найдена при обходе неймспецсов.
Присвоения будут внутри контекста, а глобальная переменная останется неизменной.