You can write hygienic macros with define-macro because s7 has first-class environments (and gensym) (see s7.html under define-macro), so there's no need for syntax-rules.