Right now, Numba violates Python semantics by "freezing" the value of globals as well as the inlining other function bodies when compiling a @jit function in nopython mode. This is because there has been no efficient way to detect when these external dependencies have changed.
Python 3.6 includes PEP 509, which adds a version number to dictionaries that Numba's dispatcher could check at call time to determine if dependent global variables or functions have been modified since the function was compiled.