Can't fetch static asset from other worker when invoked through service binding

I have a Cloudflare Pages page and a separate Cloudflare Worker to generate OG images for some of the pages.

For branding, the worker fetches some fonts (from another Pages page, where they are static assets) and an image from static assets of the page the invokes it.

When I call the worker using its public URL (https://xxx.mastermakrela.workers.dev) it works as expected.
But when I call it using the Service Binding ( env.NAME.fetch(…) ) it fails.
From my testing, it seems that the worker invoked through Service Binding can’t access assets in other workers through a URL.

Here it is mentioned that fetch request between workers should be done using service bindings, but then the questions are:

  1. why does it work when invoked through URL?
  2. How can I dynamically use assets hosted in other workers? (I can’t create bindings programmatically, but I can pass a URL)