The external definitions don't operator on the concept of "files", they read the source repository directly. Once you define any kind of "tag" in the external definition, it'll only look for tags. "latest" is a magic tag that will automatically get the newest tag that exists.
The problem is that devs don't tag (at all, or not often enough), not that they tag broken versions as beta.
The second problem is that alot of addons use trunk versions, and thus your attempts to use a stable version are futile due to auto-upgrading.
Two things should happen:
1) Addons should use tag:latest on most libraries.
2) Devs should make sure to have a semi-recent tag of their addon.
Another problem that occurs from this issue is with disembedding.
Assuming you run all release versions of your addons, you will also only get release versions of the libraries.
Now, if the addon uses trunk, it'll have the latest version of the lib, but if the user dis-embeds, he'll get the last release version of it, unless he manually sets the curse client to "alpha" for that library.
Alphas are all revisions that are not tagged, not always working 100%, or not finished, or whatever.
Betas would be useful, but in our current system, at least for libraries, they are not treated different from releases, really, so devs should know that a tag:latest will also pick up a beta tag (afaik).
Disk space is cheap =)
The files are not parsed by WoW if setup properly, so its really only disk space. I don't buy that argument ;)
New libraries should not hard-embed LibStub and CBH-1.0 anyway. Use .pkgmeta for the libs, and also disable the nolib creation, and you're all set.
And yeah, in a perfect world people would use one specific tag, make sure it works with that, and then release their version. However, it would still have potential to break when another addons comes with a newer version. You'll have to trust the developer to not break functionality.
But as others stated before, tags are not supposed to be arbitrary points, but rather versions that are finished and stable. If a dev tags arbitrary points in development just to get more testers or whatever, he should be banned from any development, imho =)