Hi.
I may be misunderstanding hygienic macros here, but as far as I can tell I am getting variable capture.
I don't use hygienic macros either but
This displays (7 8 9) when arg2 should be (1 2 3) (the value of a b c in the calling code, not the value in "bad").
Bigloo prints (7 8 9) and Gauche prints (1 2 3) Chicken, guile, mzscheme and petite all fail with macro error, or receive error.
I have no clue which one is correct (I don't use values either), but I guess it shows that define-macro is better :)
By the way. I think you should also tell the maintainers of the portable syntax-case about this bug, if you're sure both gambit and bigloo got it wrong (and tell the maintainer of bigloo too then).
Adrien