I have an extension that I recently upgraded to manifest v3, and part of that involved moving some calls that I had done on a background page to an offscreen page.
Specifically, my extension ships with a load of javascript files generated from the "unidata" text files published by the Unicode Consortium, only two or three of which a typical user will need at any moment. Therefore, in old "manifest v2" version of my code I loaded those files only as needed by adding a <script> tag dynamically to the background page.
In my "manifest v3" version, I now do that to the offscreen page (and then use onConnect and events on a port to query stuff loaded from those files) instead.
Also, my old code at one point invoked window.open(..., '_blank') from the background page - that obviously won't work anymore, so it's now I do that on the offscreen page too. (yes, I could _also_ request the "tabs" permission, but that really seems like overkill just to use window.open)
Neither of these reasons seems to fit any of the listed reasons for why one might need to use offscreen.