Если то, что вы действительно хотите сделать, это сделать имя функции в динамически текущем пакете, вы хотите сделать что-то вроде этого:
(defmacro makefun (&optional (name (package-name *package*)))
(let ((funn (intern (symbol-name 'fun) *package*)))
`(defun ,funn ()
,(format nil "hello ~a" name))))
Однако для меня это пахнет проблемой XY: Я не знаю, в чем проблема, которую вы пытаетесь решить, но, скорее всего, будет лучшее решение, чем множество разных функций с одним и тем же именем, но в разных пакетах.