Я хотел опубликовать ответ, что есть случай, когда переменная не будет найдена.
Циклический импорт может нарушить поведение модуля.
Например:
first.py
import second
var = 1
second.py
import first
print(first.var) # will throw an error because the order of execution happens before var gets declared.
main.py
import first
В этом примере он должен быть очевидным, но в большой базе кода это может быть действительно запутанным.