But there seems to be a fatal (from my point of view, for my particular application) flaw for all of the DVCSs: they don't handle integrating third-party libs etc. as part of a bigger project. You can't "bring-in" a particular subset of one repo into a different location in another.
The core Bzr folks have been using the config-manager tool from Robert Collins for doing just this from back in the Arch days before Bzr existed. config-manager also allows one similar functionality to tags. If you want more tightly integrated functionality, bzr is pluggable (so having bzr subcommands call out to config-manager should be quite simple to implement, and not require any changes to core bzr code).
Personally, I'm waiting for Bzr's cherrypicking support to catch up with Arch -- when I've asked the core team, they indicated that such was a pre-1.0 feature. While they've kept backwards compatibility (via support to upgrade repository formats), bzr's backend is still very much in flux.