I was experimenting with integrated tools.namespace reloading in elisp as well, and I found a slightly nicer way to send commands to nrepl:
(defun nrepl-reset ()
(interactive)
(nrepl-interactive-eval "(user/reset)"))
The original elisp function: (defun nrepl-reset ()
(interactive)
(set-buffer "*nrepl*")
(goto-char (point-max))
(insert "(user/reset)")
(nrepl-return))