I kind of like the general idea of Pascal's proposal: separate a human-readable-version-string from an asdf-comparable-version-string. The exact names are to be determined. Maybe, by analogy with name and long-name, description and long-description, we could make that version (used by ASDF) and long-version (used by humans).
Works for me, as long as it is also possible to delegate comparison to the concerned system. Or, you adopt my personal versioning scheme :-D.
Versioning is a can of worms I refrained from opening while I was the maintainer, and that I'd rather keep not opening now that I'm not anymore. I don't know what Robert's position is, but I suppose the general ASDF policy is to accept patches, as long as (1) it's backward compatible (or there's a STRONG reason not to be AND there are only few affected users in Quicklisp, if any, who all have been notified and/or offered backward and forward compatibility patches), (2) it allows ASDF itself to remain minimal, and leaves advanced features to extensions, (3) the patch includes tests.
So, if you can implement you version scheme as an extension, ASDF will probably be happy providing all the hooks you need in ASDF 3.2, if they are currently missing -- but the hard work of determining whot those hooks are remains yours, and they can't be made to magically appear in old versions of ASDF, either.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org Absent, adj.: Exposed to the attacks of friends and acquaintances; defamed; slandered.