Why only "almost" valid?

This page contains a link to a CGI program that uses '&' as a separator, such as "http://host/prog?x=1&y=2". Gerald Oskoboiny writes:

"This is a common problem: the inventors of CGI didn't think things through very carefully when they decided to use the '&' character as a separator between CGI arguments, because '&' has special status in HTML.

The only way to get around this is for the author of the CGI program to use a different value between arguments, like ';' or '|', which would allow the link to be coded as <img src="http://site/cgi?opt1=val1;opt2=val2"> or whatever."

But as we can't force the author of the CGI program to do so, we have to live with the fact, that our page is only "almost" valid...