Setting slime-conservative-indentation to nil seemed to solve my problem with defpage (I noticed the `macro indentation' thread after I posted).
Since the &body syntax seems to cover the ways you might implement macros similar to defun or dotimes, it seems superfluous to have a special case for do* and def* prefixes, and the current defaults cause a bit of astonishment when you first implement a macro like defpage in slime.
Is there a reason that slime-conservative-indentation defaults to t (or any disadvantage to setting this to nil)?
Thanks,
-- Travis