This is an argument that often get poked in online forums (social.microsoft and the like) but no one seem to have a clear understanding of all the issues, so I am posting here. Also notice that the following is from a pure technical viewpoint, avoiding on purpose discussion about any legal implication dll embedding may have.
The problem is easily summed up: most of the time I work on "on commission" custom solution for clients that use multiple competitor agencies to externalize their SharePoint development. This means that most of the time I have very little control over the farm environment, yet I found myself constantly having to use external libraries I often can't avoid or supply myself.
Simple example: think of entity framework. All the competitors use it. Result: n solution try to deploy the same dll and this become a "warfare" scenarios with no real ALM plan - every application can potentially destroy all the others one when retracting, by removing a single dll everyone use. This could be avoided if the libraries where provided by special ad-hoc solutions that just do that, but not every client seem to accept that.
For that reason, I was considering as at last option to use dll embedding-as-resource to avoid deploying dlls to the gac in the most desperate situations. Probably many of you know Costura.Fody or others dll embedding plug-ins, but any attempt to use it in my test have failed. It seem like SharePoint overwrites the handler dll embedding solutions use to handle the AppDomain.Current.AssemblyResolve event and provide custom resolution, but I can't find any source confirming this.
For this reason I am asking about any success story you may have about using dll embedding on SharePoint or procedure you are using to achieve that. I am also open to any alternative you may have that could be used as an alternative to provide better control in environments like the ones I described.
PS: I already have considered using bin folders instead of GAC for dll deploy, but my clients have the habits to use "one for all" web applications, so it wouldn't provide much help.