I'm not sure what the solution is, but I discovered that if you redefine &B::A to be
sub { $_[0]->SUPER::A }, you get the error "Can't locate object method "A" via package "main" at noinherit.pl line 24." This is despite the fact that @B::ISA is still ('A').
I dunno if this helps.