Embedding is really good features, and having it as independent plugins would be great.
Embedding could be done for any link (then plugin should get link and it’s title), or have specialized tag for it. $[https://www.youtube.com/watch?v=???] or even embed syntax for all external resources should go throught plugins. ![].
Plugins could register some url patterns or they should return no content, and when result will be determined from first plugin to return it.
It of course could be combination of this methods.
Because it is great to have specific youtube plugin, but have some generic oembed one, for all other links will be good as well .
Plugin imo should return some html code that will be rendered in preview mode. Or JSON meta object that will be rendered but i think it will be less flexible.