for some 0.02, this is my high-level perspective:
the name of an entity/concept is some letters/sounds/notation that we humans use to point to it while communicating with each other. sometimes we use computers to achieve that, e.g. when packaging a library together with a .asd file.
from this perspective, the question is: should names in the ASDF model be a simple string of characters, or should they be represented as a more formal encoding that includes the state of the entity being pointed to (i.e. the version information).
IOW, for me the question boils down to this: shall ASDF implement version control features?
and looking at the unfortunate fact that source code is still saved into flat text files today, and at the complexity/requiremenets of git & friends to deal with the state of these text files, my gut reaction is no, it should stay far away.
professional integrators should use professional VCS systems to mark specific states of the entities they are integrating. i think anything less is just wasted efforts that grows complexity without solving the issue beyond the trivial cases. e.g. what about quicklisp, or integrators in general? shall they bundle different versions of the same system (they can't, because the lisp package namespace is shared)? or will they just resort to whichever tools they are using to resolve the integrator's headaches and just entirely ignore the new ASDF feature?
FTR, for our libs i use darcs and overlapping tags to keep track of the collective state of the dependencies when packaging various different apps that use various different subsets of these dependencies. for foreign libs i also use whichever VCS is used to publish them.