Since it turns out to be stack manipulation providing the savings, the cases where I'm going to be able to take advantage of the ampersand are few and far between.
cmpthese( -1, {
k1 => sub { $foo->do_nothing(1) },
k2 => sub { Foo->do_nothing(1) },
k3 => sub { Foo::do_nothing(1) },
k4 => sub { do_nothing(1) },
k5 => sub { &do_nothing(1) },
});
Rate k2 k1 k5 k3 k4
k2 1380806/s -- -14% -34% -35% -37%
k1 1610612/s 17% -- -23% -25% -26%
k5 2103412/s 52% 31% -- -1% -4%
k3 2133262/s 54% 32% 1% -- -2%
k4 2181254/s 58% 35% 4% 2% --