define-macro は RnRS で提供して無いけど、
R6RS では簡単に define-macro を実装できる。
典型的な実装例はこんな感じ。

(define-syntax define-macro
(lambda (stx)
(syntax-case stx ()
((_ (macro . args) body)
#'(define-macro macro (lambda args body)))
((_ macro transformer)
#'(define-syntax macro
(lambda(stx2)
(syntax-case stx2 ()
((k args (... ...))
(let ((v (syntax->datum #'(args (... ...)))))
(datum->syntax #'k
(apply transformer v)))))))))))

これなら >>89 のようなことは問題なく出来る。

でもまぁ Scheme 的には let-syntax を使う方が楽ではあるだろうね。