I've tested modules with nested importing like below.
a.py
var1 = 2
import b
b.var2 = b.var2 + 1
b.py
var2 = 5
import a
a.var1 = a.var1 + 1
c.py
import b
import a
print(a.var1)
print(b.var2)
Regardless of importing order, the printed result of c.py was always 3, 6 which means each module is loaded only once.
Can I assume that each module is loaded only once even with nested imports?