If I understand the given example correctly, the purpose of that semicolon is to visually separate the <Plug>
mapping from any subsequent command, as in the imaginary:
nmap xx <Plug>FooBarx " Is it 'rx' at the end?
nmap xx <Plug>FooBar;x " Oh… OK I guess
But I don't think that's a particularly good pattern, mostly because ;
is a legitimate command, which can lead to more confusion. And it is only provided as an example anyway, not as a guideline. The name doesn't have to be in PascalCase and it doesn't have to end with a semicolon either.
AFAIK, the most common real world pattern is actually to wrap the name in parentheses:
<Plug>(FooBar)
<Plug>(foo_bar)
" etc.
which makes boundaries very clear and non-ambiguous, in a "it starts here and it ends there" kind of way:
nmap xx <Plug>(FooBar)x
Note that the parentheses are not some obscure vimscript expression thing, they are literally part of the name so you can be creative:
<Plug><FooBar>
<Plug>[fooBar]
<Plug>{foo_bar}
<Plug>§1337§
" etc.
at the risk of puzzling both your users and your fellow community members trying to help.
You should stick with the parentheses.