The worries of the OP are puzzling. He is using a lisp, is he not? How painful would a generalized code transformation system be in arc? If reader macros are available, then you could also do it dynamically.
Such a generalized Arc translation system would be pretty infeasible, at least with a static analysis approach. If a library defines a macro and uses it, you need to at least partially execute the library, or else you don't have the macro output to analyze.
I think the "do it dynamically" idea, by which I assume you mean setting up the transformer so that it applies as the library runs, is the way to go. But then I'm not sure what idea you have for that approach that would help the original issue, which is reacting to breaking changes in upstream code.