無駄にパッケージを作ることを許容するのであれば、空のパッケージを作ってexternal symbolをimportしてexportするだけで実現可能です。
スコープを区切らない (区切れない) ので、ファイル単位で別名を使いたい場合などには一応使えます。
package-synonym.lisp
(eval-when (:compile-toplevel :load-toplevel :execute)
(defpackage :pkgctl-work) )
(defmacro begin-qualified-package (target-package synonym &optional import-all)
(let ((pkg (find-package target-package))
(pkgkey (intern (string target-package) :keyword))
(curpkgname (package-name *package*))
(synonymkey (intern (string synonym) :keyword))
(sym (cl:gensym)) )
`(cl:eval-when (:compile-toplevel :load-toplevel :execute)
(cl:in-package :pkgctl-work)
(cl:defpackage ,synonym (:use ,pkgkey))
(cl:in-package ,synonymkey)
(cl:when ,import-all
(cl:do-all-symbols (,sym ,pkg)
(cl:when (cl:eq (cl:symbol-package ,sym) ,pkg)
(cl:import ,sym ,synonymkey) )))
(cl:do-external-symbols (,sym ,pkg)
(cl:export ,sym ,synonymkey) )
(cl:in-package ,curpkgname)
(cl:find-package ,synonymkey) )))
(defmacro end-qualified-package (synonym)
(let ((synonymkey (intern (string synonym) :keyword)))
`(cl:eval-when (:compile-toplevel :load-toplevel :execute)
(cl:delete-package ,synonymkey) )))