Would that always work? It wouldn't let bar be defined before foo, which I still kinda care about. (http://arclanguage.org/item?id=12668) That's the problem with the hyperstatic idea as well (thanks for the link, btw.)
Or perhaps we should just have an explicit undef. Heh, I want to rename def back to defun just so undef is a rotation of defun.