Good questions, but I'm not convinced of the practical utility. What's on your mind?
That depends. You can look at the definition of the xpvcv struct in cv.h in the Perl sources for the basic information any subroutine (anonymous or not) has to carry around. Of course, a reference to a subroutine is just a scalar, and takes as much memory as any other reference.
Yes, the number of operations in the function and the pads it uses all eat up a little bit of memory.
Yes, anything that you'd think costs memory probably does. :)
I believe so, based on the existence of some funky closure-like bugs, but I'm not an authority on the subject. I do know that it's reused on subsequent subroutine calls, if possible, to avoid the malloc-free cycle. I would imagine recursion has its own opportunities and challenges for optimizations.