I don't remember the original reason for using -e here instead of -m
However, even with -m in my more complex setup, I still can't _quite_ get the seamless behavior I would like -- but I am a little bit closer: the original question, as asked, now works correctly that way.
I can't use add-lib in one context (nREPL or interactive REPL) and then just require in the other context -- I have to also do a require in the context where add-lib was called, but after that it is available in both contexts.
That's good enough for me for now, so I'll deem this "answered". My complex setup, where my dev.repl (main) calls nREPL's main which in turn calls Rebel Readline's main is... strange enough that I'll accept the need to explicitly require newly-added libs in that same context.