(I appreciate you answering my questions!)
Other than that, you can probably really do everything you could do with the webRequest API, but the complexity of doing it essentially reduces to the halting problem: You'd have to statically analyze all Javascript loaded by the page and figure out if it's going to do any requests you don't want to happen and then rewrite these parts. Maybe there's clever things you could do by shimming all web APIs that can issue HTTP or other requests, but that also doesn't sound fun.
On the other hand, with an API that just gets to veto every outgoing request, you can trivially achieve the same goal.
Another area where in-page Javascript is limited compared to an extension is the same origin policy. A very fancy ad-blocking extension could e.g. run an image classification AI on third-party image resources and hide the ones that look like visually distracting, flashing etc. ads by default – in-page Javascript can't.
> Simple injected Javascript can't e.g. undo requests (from other scripts or just normal resources like third-party images)
But could you detect the request, see what element it loaded in, and then hide that element? Or is that much more complicated than I'm imagining?
This remote JS stuff is a CWS policy.