I have read I should encode my ampersands as &
in HTML.
However numerous code samples from respected companies somehow forget
Two different contexts here.
In the HTML link context an HTML character entity will be decoded before the address is passed to the HTTP process; a URL-encoded character will not, as the server can read it directly.