I have run into this also, in writing macros. My workaround is to always add (if #f #f) in my forms that allow no expressions in the body. See second-to-last line below.
(define-syntax sx-match-1 (syntax-rules () ((_ v (pat exp ...) c1 ...) (let ((kf (lambda () (sx-match-1 v c1 ...)))) (sxm-sexp v pat (begin (if #f #f) exp ...) (kf)))) ((_ v) (error "sx-match: nothing matches"))))