Hrm. Devel::Size
should handle closures properly -- I remember adding in code last summer to walk pads attached to code references, and some testing showed that it looked to work, but I may well have missed something in there. I'll go look and see what's going on.
And yeah, Devel::Size does some... interesting things to get the total size of data structures. There's lots of evil knowledge of the size of things. For the most part that knowledge is version-independent, but not all of it. (Arguably there should be a Devel::Size-ish thing bundled as part of a perl distribution because it is so potentially version-dependent, but that's throwing more work on the core internals group, and they've enough to do as it is)