Как уже отмечали другие, Python поддерживает внутренний список всех модулей, которые были импортированы. Когда вы импортируете модуль в первый раз, модуль (скрипт) выполняется в своем собственном пространстве имен до конца, внутренний список обновляется, и выполнение продолжается после оператора импорта.
Попробуйте этот код:
# module/file a.py
print "Hello from a.py!"
import b
# module/file b.py
print "Hello from b.py!"
import a
Цикла нет: есть только поиск в кэше.
>>> import b
Hello from b.py!
Hello from a.py!
>>> import a
>>>
Одна из прелестей Python - то, как все сводится к выполнению сценария в пространстве имен.