It's a huge development aid - if you're running emacs and slime, you can reload individual functions or files with a quick key combo, and if you want code reload over multiple files, a reload function is easy to write - check times and you're off. You can also do that with compiled code, too - instead of (load "filename"), use (load (compile "filename")) and it'll be compiled. The next time the functions are called, they'll use the new ones.
The tricky part is macros and inline functions. Any time you change a macro or a function you want to inline (CL compilers can't do that automatically because of the language spec), you need to recompile all the functions that use that macro/inlined function. ASDF has some dependency-tracking functionality, but I haven't used it.