Here is a quick fix for slime-reindent-defun when used in the repl input area. As it was, (beginning-of-defun) tended to find the beginning of the repl buffer, which was suboptimal (especially for 20000 line repl buffers! :).
There may be a more kosher way of finding out if you're in a repl buffer, but checking for the input mark seems to work.
-bcd