In my opinion, a "lives" system doesn't impact skilled players
(aside from there just being another counter/number that they can increase to 99 if they want to), while punishing bad players.
Especially so if you enter a level with 20 lives, then lose some of them on the way and the rest near the end, as then you might restart the level from the beginning with less lives than you originally had, making it even harder to beat the level than before.
In other words, it makes it harder if you're bad at the game, which is the type of situation in which the game shouldn't get harder, at least in my opinion.
I'd be happy with if the player has, say, 5 lives per checkpoint. Whether you die 0 or 4 times on the way to the next checkpoint, you'd have 5 lives after activating the next one.
(See LittleBigPlanet 1 on PlayStation 3 for an example.)
This way, dying too much at one section will put you back to the start of the level, so there's still an incentive to not die, but you'll not be disadvantaged (nor advantaged) further the next time that you get back to this section after a game over.
Of course, with such a system, extra life monitors would have to be replaced with something else.
I'm not sure how continues would work with this, but maybe you could use a continue to restart with 5 lives again from the checkpoint instead of the start of the level, maybe with a life or two more at each checkpoint for the rest of the level?
Skilled players could be rewarded with an emblem for clearing a level without dying
(or without getting hit?), so as to reward skilled players with emblems instead of lives now that the latter won't work.
That said, I understand that SRB2's current lives system is like that of "classic" Sonic games
(even "modern" ones until Sonic Forces (in which you have infinite lives)), even if I don't agree with it in those games either.
TL;DR: I think that accumalable lives punish bad players, since if they die too much, they may have to restart a level with less lives than they started it with at first.
Having per-checkpoint lives might solve this without resorting to infinite lives.
[...] The only thing I'd add is a little animation on the Continue screen showing the number of Game Overs you've gotten and the number of bonus lives you get from that. Make the system transparent.
Is "the number of Game Overs" permanent per save slot, or just temporary until you beat a level? In the former case, I disagree; That's a negative statistic that can never be decreased
(aside from deleting the save slot and starting all over), which I'm not a fan of, as that makes it possible to make a save slot permanently "not perfect".