No creo que esto es posible: por lo que yo sé, la macro traza generalmente funciona mediante la sustitución de la función en un símbolo dado por una envoltura que llama a la original y también imprime el bit de rastreo.
Si está interesado en los detalles de implementación (complicados), el código SBCL está en src/code/ntrace.lisp (probablemente quiera ver la función trace-1).
Por supuesto, si lo que quieres hacer es algo de impresión cuando foo-3 se llama, siempre se puede poner una declaración de impresión dentro de la forma de lambda en foo ...
¡Gran pregunta! –