More concretely... you think in your examples that because you see (current-module) in the (foo) module that (current-module) will be (foo). That is a lexical assumption. It's usually what you want. But current-module isn't lexically scoped -- it's dynamically scoped. Its value comes from the continuation that invokes the call, not the environment in which the expression appears.
Andy
