Does Worker to Worker calls spawn new runtimes?

I see the docs mention worker to worker calls (service bindings) as a zero cost abstraction. Does that mean the sub-worker being called gets it’s own runtime (with its own CPU time limits and memory)? Or is it more like the sub-worker is being invoked as a regular function inside the same runtime of the main Worker?

For example, let’s say I have a Worker function that needs to call thousands of requests to an external API endpoint. I probably can’t do that within the same worker (from run time limit and concurrent connection limit on that machine) and will need to fan out the calls to separate workers (let’s say, to do 10 calls each). Will the newly dispatched workers get their own runtime (both memory, and CPU time limit)? Is it truely a zero-cost-abstraction? Or is it just calling the other functions within the same machine, as if it were importing a function?