* Inserting malicious JavaScript
* Changing content on trusted websites in order to mislead people
* Replacing downloadable application binaries with versions that contain malicious code
Points 2 and 3 are the same, they're about integrity which could be had cheaper with content-addressing (hashes uniquely identifying the content) rather than pulling in the full TLS+CA machinery.
Like Airtel used to (still does?) in India.
But, you make a mistake in firmware version XYZ and there is an RCE in it. So you pull it off your site and now XZZ is the latest version.
Only problem is, anyone that can MITM you can serve version XYZ that the client will accept and make the machine exploitable by an RCE.