Well, if I dive deeply into CL one of these days, I'll tell you :-), but this not in my plans for the near future :-/
You are right to refuse "magic".
For Arc, oh this is way too much difficult for me, but if I had to try to solve the problem, I think I'd try to add a level of abstraction between the Scheme runtime and the Arc one (?!)
Macros currently, as you know, directly run in the Scheme environment (am I all right?). I'd try to avoid that, and have more control over them by "compiling" them to a special form (`ar-macall') but not directly execute them (?!)
And so 'if could then have a "higher priority" than macro expansion (?!)
But these are pure ideas in the wild. I am not able even to try, so don't listen this crap :-D