I did not understand what you meant by "because it does not call the embed.dll." AFAIK, the embedding is done by using the SetParent and MoveWindow API, and can be called by any application. GM can set itself to be embedded into something, or embed two third-party application. I embedded two notepads into each other. But the problem is, they dont get drawn until the paint event is called (in cases of many application), so you may have to send that message to them constantly.
For example, in a gm-game I use a external_call to call the functions of embed dll.
But in another game that doesn't call the functions and runs fullscreen it would be hard or impossible to embed.