> Part of the goal of content blocking is to reduce network traffic, so that's not an ideal outcome.
Not in the short term, no. But, maybe in the long term ...
Remember that the user is not the customer. The customer is the person buying the ad space from google/facebook/etc. If the customer receives no value for their money, and they can easily determine that, why would they continue purchasing ads?
If every browser downloaded and clicked every single ad in an invisible background and sandboxed process, ads become close to worthless to the customer.
So, sure, in the short term there'd be extra processing and network usage, but that would quickly taper off as customers stopped buying ads because every single ad they put out gets a 100% click-rate. After a while the extra utilisation would be close to zero, as it would only be the occasional customer trying their luck at advertising, and failing immediately.
It's the same with spam email: the solution isn't to block, and keep lists and reputation, the solution is to reply to every single spam email![1] Even the most well-run spamming/scamming organisation can't very well reply to millions of emails rxed per hour.
[1] Caveat: need to ensure that the sending email did indeed legitimately send the email, otherwise a few clowns would simply send spam with someone else's email as a prank.
Prefetching is a low-priority operation in general, so you can't rely on the fact that prefetching happens earlier than the page loading (the diagram is quite misleading in this aspect). Therefore one alternative might be to start loading prefetched but blocked resources but arbitrarily delay it until the page loading finishes, at which time blocked connections get closed.
Could run the ad blocker as a MITM proxy on an unmetered fast connection (e.g. residential), and it serves the lightweight modified version over your metered slow connection (e.g. mobile).