I think technically easiest solution is to modify the i18n.php files:
-$GLOBALS['wgHooks']['LocalisationCacheRecache'][] = function ( $cache, $code, &$cachedData ) { +$GLOBALS['wgHooks']['LocalisationCacheRecache'][__FILE__] = function ( $cache, $code, &$cachedData ) {
This makes it so that if the file is included again, it will just override the previous callback set in that file, instead of adding a new one.
The downside of this approach is that someone needs to change this in all the hundreds of extensions.
Modifying LC itself does not help users like you who are running older versions of MediaWiki [1].
[1] The shims are only used in <= 1.22.
-Niklas