Not much help, but your code produces the expected output (only one FETCH) on my Linux Perl build (Perl 5.8.0, glibc 2.2). You might indeed be looking a an Active Perl only issue.
CU Robartes-
Comment on Re: Unexpected behaviour of a tied array (Bug in ActiveState Perl?)