Neat abbreviation. I'd still like to see what it's agreeing to.
The wrapper macro installs a handler around a parser, and the parser signals a condition when a field is missing. The handler writes a note and returns normally. In Common Lisp that normal return means the handler declined. It says nothing about the parser having recovered, and signaling doesn't have to unwind anything right away.
Now swap that handler for one the caller passes in. It might decline, transfer control, or invoke whatever restart is available. Trace one signal through both versions before trusting how tidy the wrapper looks.
So what does the macro actually promise? Who establishes the restarts, how long do they stay available, and what can the parser assume when signaling returns? A short spelling is nice for recognizing the protocol. The expansion is a poor place to keep the agreement itself.
