Overall, this looks like a good idea to me, but it does have the possibility of showing you a "nickname" that isn't actually a nickname for the package.
Peter Seibel writes:
- (or (cdr (assoc (package-name package) *canonical-packge-names* :test #'string=))
How about this instead:
(or (let ((nick (cdr (assoc (package-name package) *canonical-package-names* :test #'string=)))) (and nick (find nick (list* (package-name package) (package-nicknames package)))))