Absolutely, I think the better way to do it - require stealth OK, but let me deal with the consequences. Don't "fail" it arbitrarily - punish me with the enemies fighting me, though this might mean enemies that ain't just bulletsponges and I think AI is the redheaded stepchild in game development...
I agree. I recall when the Splinter Cell games stopped with the 'get discovered three times and the mission's over' bollocks and actually took the piss out of the whole concept in the next game, but an alternative such as 'fighting your way out of it' is absent in too many games with regards to stealth.
I think too that in story-driven games that - fighting enemies aside - the story should ideally branch in a minor fashion depending on whether you get caught. There was a part in Days Gone that I recently did where the result of getting caught/not getting caught wouldn't really have made a difference from how the game played out from there, meaning there wouldn't have to be much of a re-write for the two different outcomes. Simply having a different cutscene at the end of that mission and some sort of penalty for getting caught (such as some of your money being removed) would have been far preferable to tediously creeping from bush to bush several times over.
I also find that being forced to do a stealth scene over, I'm far more likely to also fail on the second run, simply from rushing it due to a lack of patience at having to repeat the exact same monotonous process over again. After that it can become a spiral and I've actually quit games in the past simply because I can't be arsed going over and over with it.