This does seem to be a bug.
But I question this:
Maxima certainly should be able to display any Lisp object without an error;
> even PRINT would be OK.
>
Well, that would be nice for debugging bad code, but I think it's perfectly
OK for Maxima to simply give a *clean* error (not infinite loop or crash)
for malformed expressions, e.g. (sin 1), (sin . 1), (((sin) 1)), ((rat) a
3), etc.
Almost 40 years ago, I did write a printer for Macsyma designed specifically
to handle arbitrary Lisp expressions that would try to handle embedded
Macsyma nicely, e.g. (((mplus) a b) ((mtimes) a b)) would print as ( $(a+b)
$(a*b) ) or something. Useful tracing and debugging tool for people coding
in Lisp, but doesn't seem necessary for the Maxima end user.
-s