What was done could be described as a "bug fix" only if we expand the definition of "bug" to include something like "an error message that is confusing to the naive user". Given that, as I pointed out, CGI::Carp messages are arguably not meant for the eyes of naive users in the first place, the justification for this particular "fix" was exceedingly slim.
For a single-user system, the approach you describe is probably fine, but, IMO, for multi-user systems the patch should be sent first to the maintainers, and have the fixed version come back as a standard distribution. In the meantime, I patch the version in my privlib and leave everything in /usr/lib/perl5 untouched. After all, "shadowing" of the untouched original version by the patched version in privlib (through a suitable definition of PERL5LIB) works like a charm.