What ever happened to hacks being acceptable as an interim solution on the way to a proper one, as long as they're marked as such in the source code?
I'd be more than happy to mark the code as a hack with some sort of a comment, but removing it entirely in favor of this non-existent core LCD persistence handling seems pointless.
On the topic of adding core support, the actual method of handling persistence is debatable. The Game Gear driver uses a flat 50/50 blend right now, but I expect other LCDs might have more or less persistence, so a two-frame average wouldn't work for those. Then, once it's supported by the core, what's the standard for determining the persistence value? Tweak it until it looks right? Write trojan code and use a high-quality camera to measure the persistence empirically?
Then, how do drivers specify persistence? Does it become a new MDRV parameter, MDRV_LCD_PERSISTENCE?
At any rate, I agree that it should eventually be moved into the core, but for heaven's sake, the bug has been there for 8 years, it's one of MESS's most long-standing bugs, and this is at least better than nothing.