Hm... this is a tough subject. When I first saw the title I thought I was absolutely against it, but I tried to read the entire thread from a neutral point of view.
And it's not easy. But when unlock-all would be good... why is it used so few? Is there a stigma that should be removed?
An example of what I do most of the time in games with completely linear design (levels, with checkpoints in them, and hard saves at the start of every level) is described below.
You progress to the levels normally, apparently without an option to skip ahead or play any level you want. This makes sure people will not have to weigh the decision of skipping, and they will always get the satisfaction of beating a level. However, they could potentially get stuck.
Then, when they beat the game and after the ending cutscene (this is just an example, it's not like there's an ending cutscene in every game of mine) they get to see one last note: "Oh, and by the way, you can use m to skip a level ahead and n to go a level back." I might also add in a few debug features if I feel like, so people can turn on fly, or get into a level editor mode.
This makes it so that if they ever want to play the game again, much later, when the save file has probably gone, they can actually skip to the level they want to skip to.
I think that's a good way to do it, because I myself have much less motivation for finishing a level for the first time if I already know I could skip it.