Wasn't a bug.
A single print statement inserted in the sub wasn't printing to STDOUT, and there was no error, etc., but in debug all of it showed up. I think Net::AIM is somehow suppressing STDOUT in subroutines called as handlers, because the sub is being executed without -d, it's just that the strings aren't being printed to STDOUT. Ah well. If I need 'em that bad, I'll run it in debug.
Now, on to the rest of the actual work. I can't help but feel sheepish -- I've spent a buttload of time working on a non-bug. I squished something that wasn't even a cucharacha, and it took me a long time to do it. :(