I believe it used to be recommended that applications accept ; to separate query string parameters so that if a url containing query string parameters was double-html-escaped for some reason...
e.g. a link to
http://example.com/?colour=blue&age=old
with link text
balloon
should appear in html as
<a href="http://example.com/?colour=blue&age=old">balloon</a>
but might erroneously appear as
<a href="http://example.com/?colour=blue&amp;age=old">balloon</a>
...or if a (simple) client neglected to html-decode the uri for some reason, then the link would still work.
Whether this was officially recommended or was merely a folk recommendation, I don't know.