Can we get away with creating less than one module per function? For example, if we were to invalid `jl_Module` whenever we are forced to get a function pointer, but reuse it here if it is still valid?