Using your patch as is would wrap the source blocks in both example and
verbatim blocks. If going with verbatim it would be better to remove all
references to @example/@end example.
I had chosen to go with @example rather than @verbatim because it does state
that lisp blocks should be wrapped in @lisp which is synonymous to @example.
It should be possible to escape any braces or @ before inserting them into the
example block to ensure there is no expansion.
The only differences in using @verbatim over escaping any characters in
@example are the following:
- Tabs are treated as tabs and not as single spaces
- The code block is not indented.