CGI.pm does more than it should, it's not neat and the "mainstream perl culture" pushes it mainly due to its status. Nothing serious, just his view and shared by some others including the CGI.pm author himself.
I think CGI.pm could be renamed... possibly to a name that reflects all that it does and its size. Who likes CGI-HTML-HTTP-BundleByStatus.pm ?
Even as I say this, I recommend it to everyone learning perl, just don't get to attached to it :)