compilation of macro printf



One of my students found the following

Maxima 5.13.0 http://maxima.sourceforge.net
Using Lisp GNU Common Lisp (GCL) GCL 2.6.8 (aka GCL)

(%i1) foo(n) := printf(true,"~d",n)$
(%i2) compile(foo)$
...
(%i3) foo(7)$
7
(%i4) compile(foo)$
...
(%i5) foo(7)$
n

printf is a macro function from package stringproc. 

Is this behaviour due to printf itself or is there a general problem with compiling macro 
functions?

Volker van Nek