It was my understanding that embeds.xml was created for a different purpose. The old wowace packager didn't need embeds.xml to create disembedded versions, as it did so before the embeds.xml was implemented and continued to do so even though not everyone used embeds.xml
This is true, it didn't NEED it but used it if provided. The packager didn't touch the toc file, and thus they created the embeds.xml file. The basic difference between the 2 was that the no-libs was a svn co %path% --noexternals ; and the emebeded version was just a straight svn co %path%; The no-ext version also got the embeds.xml scrub.
It was created to get rid of errors in the loading process when someone was using standalone libraries. Normally in the toc you would have all of the libraries listed. If a user had stanalone libs, though, the game would say "where the heck is this file?". It'd then write an error to a log and continue loading, but loading would take longer because of these missing files.
With embeds.xml, the client sees the xml file in the .toc and loads it. The toc then loaded each library the addon required. If someone used standalone libs, WAU would wipe the xml file clean except for the header, so no errors would be created when the xml file didn't find the libs.
eh, yes.. (weird wording but yes).. The packager wiped the emebeds.xml file not WAU IIRC.
xml files do get reloaded when reloading the UI, else how would you make tweaks while coding? Then again, I'm not sure if the same is true when loading files from xml. But the toc is *not* reread when reloading your UI. *Any* toc changes require a full game restart to take effect.
If it's loaded via XML, the file had to previously exist, you couldn't hot swap a file in, but if it was there to begin with you could load it via XML while the game is live.
The emebeds.xml format was developed origionaly for the wowace package maker tied to the files.wowace.com site. The packager would gut this file for the disembedded packages it made. This allowed us to easily create embedded and disembedded packages.
With the advent of the curseforge system and the "@no-lib@" stipping this practically allowed for us to do anything again. However the method is fairly convinent as the embeds xml is generally only used for Libs in use and other times "Static Files" that an author generally dosn't have direct control over. It is not often that you change your libs in use unless your testing something.
Also it still allows for an easy conversion from the old wowace system to the new curseforge system as you can just put the @no-lib@ tags above and below the embeds.xml file and get the same effect as the old package maker did for disembedded zips.
It was decided a while ago that libs 'should', as a general rule, have a lib.xml file in it. This lib.xml file is to load the rest of the lib so that the addon dosn't have to list every single file in the lib and keep track of them all accrost upgrades. It also ties into the old and new folder layout in use.