Perhaps this problem could be looked at from another angle. That is, if we can make the number of test planned automatically calculated, there should be no maintenance required to update the number of planned tests in the first place. We are 'lazy' programmers after all.
Our clever guys at work use the following rule to set up test plans:
use Test::More;
....
my $tests_planned;
...
# subsystem 1 test
BEGIN { $tests_planned ++ }
# carry out one test
...
# subsystem 2 test
BEGIN { $test_planned += 3 }
# carry out our 3 tests
...
...
# Then plan the tests for Test::More right at the end
BEGIN { plan( tests => $tests_planned ); }
This way, the programmers only have to make sure the number of tests planned for a subsystem is true and square, and don't have to worry about the number of planned tests getting out of sync at all.