If you want a feature comparison, list what you know about bundles/dylibs to start...
From what I know, dylibs is for including 3rd party code at build time, maybe a client to consume an API.
ExtensionKit allows you to expose realtime UI or information, going through the installed app instead of a 3rd party service.
That way you don't have to expose your API or build an SDK. You just have functions in your app that expose it. Also that information is only provided if the user has that app installed. So the experience is curated.
Nope. You can decide how and where to load and call entirely at runtime. Check out manpages for dlopen, dlsym.
I don't know anything about this new feature of Apple's, but knowing the way they've been going for the last decade and change I would guess the unique thing is around sandboxing, out of process calls, etc.