I use the Curse Client to manage all my addons, and have it set to install the alpha, no-lib versions of all mods.
The result of doing this is that I have a standalone copy of both CallbackHandler (1.0.6) and LibStub (1.0) in my AddOns folder. I've both read and been told that neither of these libraries were meant to run as standalone.
If I attempt to remove either library through the client, it says that they're "required by the following addons". CBH is tied to 12 addons, and LS is tied to 15 addons.
1. Is there any drawback to having these libraries installed as standalones?
2. Since I'm running every addon as no-lib, is the correct way to have CallbackHandler and LibStub (as well as LibDataBroker) be embedded in the mod, while all other libraries can be installed as standalone? Is it worth submitting tickets for all these addons to have the authors embed CH and LS in their addon?
1. No drawback apart from a few extra milliseconds to process them at login, and some disk space.
2. This problem warrants a bit more explanation.
Lets say AddonA uses LibX. Both AddonA and LibX uses CBH internally. Now if AddonA is installed disembedded, it doesn't actually need to include CBH because AddonA knows that for LibX to be installed standalone, it would also need to include CBH.
This is because AddonA would be dependent on LibX (in the optdeps) and LibX would load first - and since LibX loads before AddonA ever loads, LibX has to ensure that CBH loads before it does - either by including it, or by assuming the user has it installed separately disembedded.
The authors don't want CBH to be disembedded, so what ends up happening is CBH is included hard-embedded in every library that uses it.
The conclusion is, addons do not need to embed CBH if a library it uses already comes with it (Example, the addon uses Ace3 libraries, but Ace3 libs would be installed standalone as "Ace3" addon which comes with CBH, and Ace3 would be an optdep). Addons does need to embed CBH if this is not the case (Example, the addon uses CBH directly and only libraries that doesn't use CBH).
As such, there is no right or wrong answer as to whether addons should embed CBH. The same logic will apply to LibStub and LDB. In fact, because CBH and LDB rely on LibStub, there's yet another layer of library dependencies, so LibStub is always hardembedded anytime CBH or LDB is.
Noone should ever put a optdep on libstub or CBH, period.
Libs should either disable nolib creation (preferred), or hard embed libstub and cbh. That way addons usually never need to pull ls or cbh directly themself, except it an addon is using cbh directly wiithout using any library that uses it (have not seen such a case yet).