This is not only a problem with browsers preemptively requesting URLs, but also when it comes to caching. What happens when the URL I'm GETing is cached? Absolutely nothing, as far as the original server is concerned.
The current situation with browsers doing smart things to make slow websites appear fast is a bit like compiler writers doing smart things with UB in C, though. Speed a lot of things up by utilizing every undefined nook and cranny of the spec, breaking tons of legacy software that make pretty sound assumptions about how things actually work. I use a bunch of poorly designed legacy systems where GET often has intentional side effects. They break because the browser starts issuing HTTP requests long before I have finished typing an address. Let slow sites be slow and leave the speed problem to the people that should be dealing with it instead.
https://www.w3.org/Protocols/HTTP/1.0/spec.html#GET
> The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI
If I never intended for the GET to be GOT, then the browser is just as much at fault for such unintended consequences.
If you want a slower browsing experience feel free to disable prefetching in your browser, but this isn’t a hill worth dying on.
What happened to deterministic user interaction?