I'm not talking about the kind of backwards compatibility that by definition every enhancement or bugfix breaks. I'm talking about the kind where completely unrelated things suddenly stop working, ala:
$ perl5.10.0 -w
sub when { use POSIX "strftime"; strftime("[%Y-%m-%d %H:%M:%S] ", gmti
+me) }
warn when, "some warning";
__END__
[2007-12-23 20:51:11] some warning at - line 2.
$ perl5.10.0 -w
use feature ":5.10";
sub when { use POSIX "strftime"; strftime("[%Y-%m-%d %H:%M:%S] ", gmti
+me) }
warn when, "some warning";
__END__
syntax error at - line 3, near "warn when"
Execution of - aborted due to compilation errors.
Given that the whole point of the feature pragma is to require explicit enabling of stuff that is likely to break existing code, I really don't see automatically enabling it in Moose.
What happens when 5.12 comes out? Do you switch to enabling ":5.12" features? How many hundreds or thousands of modules do you hope will be using Moose by then?