I concur. There has been a long standing bug that the tied EXTEND method was being called with 1 more than it should have been called by the perl internals sub av_extend(). This was complemented by another bug where in pp_aassign() av_extend was being called with 1 less than it should have been, cancelling each other out in a practical sense for most use cases. Since most Tie modules implement EXTEND as a NO-OP this was not noticed. Once the two fencepost errors were removed this problem in Tie::File went away. I have pushed a fix which is currently being smoke tested, assuming that fix was correct I will merge it to blead, and we might see the fix included in Perl 5.32. I would like to apologize on behalf of the perl5porters community for not getting to the bottom of this earlier.
See https://github.com/Perl/perl5/issues/17496 for details.