I'm going to start by prefixing that this is not to overhaul the current checkpoint system, but more simply to add to it. More options, more variety.
Lives would work as a way that would add a maximum to the amount of times you can respawn at checkpoints throughout a level, whether this be by dying or respawning manually. If you run out of lives, you are sent back to the start of the level. Respawning at the start of a level would not dip into your live count. Lives would work in tandem with checkpoints, levels with 0 checkpoints would have 0 lives by default (this wouldn't be necessary to program, the live count just wouldn't decrease when dying when the level has 0 checkpoints.) When placing a checkpoint, your lives do not reset. Live count would be selected alongside checkpoint count in the save menu. Lives would be an optional mechanic, if you want your level to have infinite lives like how all levels are now, that would still be an option.
As for why I think this is a great idea: This is a great way to add a simple form of punishment to all levels (if you want it, of course.) Punishment is very important, especially in games with super high skill caps. Without punishment, stuff gets grindy. In a hard level with checkpoints, once you place said checkpoint, you're safe, as long as you don't exit the level, you will never lose that progress, all tension is lifted, and it can quickly start to get boring with no threat. In some extreme cases you can end up getting stuck on a 10-30 second stage for hours, not wanting to quit out, forfeiting your progress. Now with lives, when you place that checkpoint, the tension doesn't lift, and as you progress further into the level, your lives drain rapidly as you die repeatedly. Finally, with 3 lives remaining, 1 stage remains. Tension is high, your heart starts racing, you die once, you die again. 1 live left. Panic starts to set in, you give it your all on your last attempt, and stick the final grapple. It's exhilarating.