You simply can't design a game that has no bad checkpoints because every player is different. Someone out there is going to run into a problem you didn't expect and get frustrated, and frustrated people don't buy sequels.
Back in the 2D era this wasn't an issue. No one acted like it was their right to be able to beat a game. Although there was a fair amount of games with cheating bullsh!t difficulty, the assumption was that completing a game was an accomplishment and you required a certain amount of skill to do so.
I've been a gamer since games couldn't even
be beaten. You don't get to play that card with me.
I'm not even good at videogames. Never have been. I rarely beat any videogame. Yet even I think that a lot of current gamers are big f*cking pussies. A typical videogame has to provide some challenge. There are user-friendly ways to do this that minimize frustration. The player should never feel cheated but should accept that some parts of a game aren't going to be completed in the first try and in some games you might get stuck, even if other people don't appear to. That's just the way things go.
I'm pretty good at video games, and I always have been. That has nothing to do with it. This isn't about not being able to do things on the first try, either. I can't even remember the last time I couldn't beat some boss on the first try in a first party Nintendo game, but I still have fun doing it. This isn't even about not being able to do something. I'm 100% sure that I could have eventually passed that part of Far Cry. This is about discouraging the player from trying again by making it needlessly bothersome or even painful.
It's not just checkpoints in FPS games, either. In a shooter, for example, you might die in a difficult boss fight and lose all your powerups, making your next several lives forfeit as well. There's no sense even continuing, because you'd have to go back to the beginning of the level to get all the powerups you need to survive back. I couldn't beat the boss with the UberMegaBeam, so as punishment I have to fail again with a peashooter and a quarter of the hit points? There's something wrong with that line of thinking.
Really, I want to try again when I fail. I'll try over and over again for hours sometimes, but the game needs to get out of my way when I do it. I recall going for platinum medals in Blast Corps and getting absolutely furious at Rare for making the game's pause menu totally unresponsive until its stupid little animation finished. It should have taken less than a second to restart the level when I didn't get the boost start, but instead it took what felt like years after just the first few tries. That was only wasting a couple seconds of my time on each attempt. If you waste a full minute or more, the frustration isn't going to just make me mad. It's going to completely drain me of the desire to play your game.
It really isn't a question of difficulty at all, but one of game design.
What if a game had a few "get unstuck free" cards where if a player just could not get past an area they could use it and get to continue on with the story? But they only get very few of these. Sometimes I'll admit I just don't have the certain types of skills to beat one part in a game but after getting someone else to beat it can just continue to breeze through the rest with no problem.
There are ways to do that right (the cloud item in Super Mario Bros. 3 was a good attempt), and ways to make me want to murder you and your entire family for patronizing me. It should be the player's choice every time. That is paramount.
While I'm at it, let me add one more commandment. Thou shalt not lock content behind goals that only part of your audience will be able to accomplish. F-Zero GX, I'm looking at you.