The documentation for both gen-class and gen-interface says: "When not compiling, does nothing."
However, gen-interface does the right thing and uses DynamicClassLoader.defineClass when not compiling. This means e.g. that gen-interface works from the repl.
I don't see a reason why gen-class couldn't do the same. Obviously, the docstrings would need to be updated too.