in reply to Exported subroutine redefine

I'm not sure that it satisfies all of your conditions, but the following (using the fully qualified function name) produces the desired output:
use module; use redefine; module::function();
Cheers,
Rob