Speaking as a BioPerl core developer, I agree on a few points, in particular some of the over-engineered bits (and its Java influence). BioPerl classes designed 10 years ago are simply not easily capable of dealing with modern analyses for anything large scale.
However, I do wish that anyone who has complaints re: BioPerl would seriously consider helping to fix some of these problems, or at least offer suggestions; we're pretty short-handed. In an effort to make contributing easier, we've moved to GitHub (so anyone can fork the code), we're pushing out the last monolithic release soon (1.6.2), and we're about to undergo a major core reshuffling to modularize classes, so now's a good time to indicate areas that need improvement. A ground-up re-implementation isn't out of the question either, but I think we have to consider the problems with just tossing out everything and starting from scratch.
BTW, I know you don't believe in Modern Perl tools, but I do. I happen to have a test project using Moose to re-implement many BioPerl interface classes as Roles, as well as identify areas that need refactoring or simplification. I was pleasantly surprised to see a modest speedup just with Roles alone, so I think it's worth looking into.