I'll write the code if I have to, but I can't imagine that someone else hasn't. Given this:
my $report = Class::Inspector->inspect($class_or_instance);
And with that, $report should be able to tell me a few things:
Note that all method objects should, at the least, provide all of the information that Sub::Information does (origin, code, name, etc.).
That's all I can think of right now. I really wish I could do things like inspect signatures or do a deeper inspection to ensure sanity, but I think that's out. Any other suggestions?
Low level tool, solves your topics #1 and #3.