(defmacro foo () ''macro)
(iter (for i from 1 to 1) (labels ((foo () 'labels)) (return (foo))))
returns MACRO, not LABELS
this is a limitation of iterate, it's not updating the environment while walking its body (in fact it calls macroexpand with nil env, i think). this is mostly becase doing so would be platform dependent.
this won't be quickly fixed, but corrent me if i'm wrong.