However, forcing everybody to add declarations for any runtime-generated subroutines strikes me as both un-perlish and extremely unlikely to happen.
There's no reason it couldn't be a pragma. Why stop
use strict; use warnings; use diagnostics; use Taint;
when you can add
use predeclaredsubs; use predefinedsubs;
no earlyreturns; no typeglobs;
use bondage; use discipline; use pain; use Inline::Pascal;
split//,".rekcah lreP rehtona tsuJ";$\=$ ;->();print$/