But doesn't defining a new module lead to code recompilation because all the functions in the module are new? Or does Revise.jl have some way around this?
yes, but it will only recompile the code in the module. All the dependents will already be compiled.