It seems that whatever macro tries to match the guard expression's else-clause, fails to do so when the clause contains more than one expression, and so adds a default "else re-raise" clause after the existing else clause.
I couldn't figure out where this happens. I grepped the whole source tree for 're-raise' and only found it twice in a comment. Transcript showcasing bug: taylan@T420:~$ guile GNU Guile 2.0.11 Copyright (C) 1995-2014 Free Software Foundation, Inc. Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'. This program is free software, and you are welcome to redistribute it under certain conditions; type `,show c' for details. Enter `,help' for help. scheme@(guile-user)> ,use (rnrs exceptions) scheme@(guile-user)> (guard (exc (else #f #f)) #f) While compiling expression: ERROR: Syntax error: unknown file:3:12: cond: else must be the last clause in subform (else #f #f) of (cond (else #f #f) (else (re-raise))) scheme@(guile-user)> Taylan