This (whether MV3 blocking is sufficient) is the right question to ask, but also a premature answer.

Because here's the future: Google is already promoting that sites have their tag management (including ad network JS) resolve at the CDN level, with randomized custom-built URLs baked into your page source as served.

https://developers.google.com/tag-platform/tag-manager/gatew...

https://blog.cloudflare.com/google-tag-gateway-for-advertise...

In this context, the only thing that can sufficiently block ads as this is more broadly adopted, is dynamic code whose definitions and behaviors can be updated regularly. Because ad networks, including Google, will become increasingly creative (especially with the ability to use AI) in having a near-infinite set of embedding techniques.

And Google sits as both the beneficiary of unblockable ads, and (with MV3) the gatekeeper of timing for executable code updates for ad blocking extensions. Core to the MV3 model is that any use of dynamically loaded code not bundled with the extension (and subject to a mandatory review period for every update) is forbidden.

Google doesn't need to do something as drastic as disallow uBO and other extensions; they simply need to "boil the frog" over the course of years as more and more of their clients move to Tag Gateway and similar approaches, and give their ad implementation an increasing "head start" by delaying approval of uBO code updates that are trying to keep pace.

The absence of evidence is not evidence of permanent absence.

> dynamically loaded code not bundled with the extension

How could that be enforced on open source browsers like chromium which can always sideload extensions and/or be modified/forked to not have such limitations?