Just for the record, any portable code walker is *not* a solution. IIRC, last time I looked, arnesi cannot handle UNWIND-PROTECT or EVAL-WHEN -- for obvious reasons. Iterate has a code walker that is as good as a portable code walker can go (portable in the ANSI CL glossary meaning).
please note that arnesi has two things: a generic code walker (with support for platform independent access to platform specific environments) and using this it has a CPS transformer for delimited continuations (the with-call/cc stuff).
the latter naturally has the usual questions connected to call/cc but the former should be trivially extended to support everything needed. but yes, it's not a usable solution out of the box.
btw, these functionalities should be factored out into separate libs, TODO entry 1243141... :)
but my knowledge is not crystal clear about these things, so take it with a grain of salt...