Just One reason is to minimize the code changes.
If allowed, then the to the following changes.

```
sub init {
    my ($class, $c, $conf) = @_;
    unless ($c->can('render_json')) {
        my $status_code_field = exists $conf->{status_code_field} ? $conf->{status_code_field} : 'status';
        Amon2::Util::add_method($c, 'render_json', sub {
            my ($c, $stuff) = @_;

            # for IE7 JSON venularity.                                                                                                                                                                
            # see http://www.atmarkit.co.jp/fcoding/articles/webapp/05/webapp05a.html                                                                                                                 
            my $output = $_JSON->encode($stuff);
            $output =~ s!([+<>])!$_ESCAPE{$1}!g;
            ...
        });
    }
}
```