Changes to Parser::VERSION cause all cached ParserOutput to be considered expired, leading to a massive load spike on high traffic wikis, potentially causing an outage or at least seriously degrading performance. This renders Parser::VERSION effectively useless.
To work around this, a configurable grace factor could be used: $wgParserVersionGraceFactor = 1 means consider all ParserOutput woth an old version expired right away. $wgParserVersionGraceFactor = 100 would mean only expire such outdated ParserOutput objects with a 1% chance.
Usage: before a Parser::VERSION bump is deployed, set $wgParserVersionGraceFactor = 100, and enable logging that would tell use how often a ParserOutput is discarded, how often a "bad" one is kept, and how often a "good" one is encountered. This would allows us to determine when $wgParserVersionGraceFactor can safely be set to a lower number (eventually, 1).
This mechanism could be limited to changes to the last (minor) segment of the VERSION string, with changes to other parts of the string always causing the ParserOutput to be discarded. Or, perhaps better, the grace factor should only applied to a specified previous value of Parser::VERSION, causing ParserOutput objects generated for an even older version to always be discarded even while the latest change is being ""trickled in". But considering how rarely the parser version changes, this is probably overkill.