A brief discussion in #lisp pointed me to the EXIT-EXTENT:MINIMAL ANSI issue[1]. The salient point is that there is no way to portably stop all unwinding for a non-local exit at a particular point, due to this case of undefined behavior:
;;returns 2 under MEDIUM, is error under MINIMAL (block a (block b (unwind-protect (return-from a 1) (return-from b 2))))
A CL implementation that implements MEDIUM should still be fully compliant with the MINIMAL decision. Therefore, I would like to hear from those with particular interest in any particular implementation running CFFI: does implementation X implement EXIT-EXTENT:MEDIUM, and/or does its callback definition form as exploited by cffi-sys:%defcallback have some "magic" unwind stopping?
As an aside: would it be better for the defcallback semantics to simply say "don't exit non-locally through a C frame"? It would probably make callbacks (and perhaps callouts, for that matter) cheaper to call, on those without "magic" unwind stopping anyway.
[1] http://www.lisp.org/HyperSpec/Issues/iss152.html