This isn't very clear.  "only valid within a functionmacro, except you can use it elsewhere, where it has no effect".

The main reason for introducing local is that sometimes when you have a definition inside a nested structure

<id> := value

where <id> is a symbol that is already defined, it is ambiguous whether <id> is treated as an expression or as the name of a new definition.  To resolve this you can prefix the definition with LOCAL.  This is particularly a problem inside functionmacros since they may be expanded in any scope, but may occasionally be useful in other situations.