but not to lock people in but to avoid the context overhead of service worker api, which they tried first and which still works btw.
I assume by Service Worker API, you mean FetchEvent? [1] As in:
self.addEventListener("fetch", (event) => {});
That is a web standard indeed, but not one that was designed for use as a general-purpose HTTP handler, but rather for use in a Service Worker proxy.
[1] https://developer.mozilla.org/en-US/docs/Web/API/FetchEvent
I really loved the idea of using service worker sdk and having something that works in browsers too so the conceptual model of edge functions are spanning backends, edge POPs and browser runtimes.