This sounds like a pretty good idea (and one that's possibly workable, at that!)
One alternative would be to invert your logic. Instead of
in reply to future warnings
to only get warnings introduced at or before 5.8.3, perhaps a
use warnings version => 5.008003;
to only get the relevant warnings introduced, and
use warnings lastversion => 5.008003;
as the opposite.
This means that newer code will implicitly support the new warnings (because it lacks a 'lastversion' declaration), while retrofitting old code to inhibit the new warnings (in case it causes a problem) is one line added to the top of the file. The already-lexical nature of 'use warnings' should take care of the rest.
no warnings 'lastversion';
}"for split/</;$_=$,,y[A-Z a-z]