The meta-game discussion, especially the part on how 'upgrades' are handled, has me reconsidering how I might choose to handle level progression in my game.
For games with varied level designs, there are more or less 5 ways to go:
1) Player progresses through levels, challenge ramps up. Somewhere around level 5-15, depending on player skill, they probably lose. Next game, they can resume at the same level they last lost at, albeit with a fresh start (i.e. score back to zero).
examples: Bonnie's Bookstore, Water Bugs, lots of other casual games
2) Same as above, except that player always restarts at level 1.
example: Titan Attacks!
3) Player starts at level 1 every game, but levels are randomized, so that the player rarely sees the same levels in order. Difficulty ramping is handled in some other way (i.e. less time, etc).
example: Ocean Express
4) Player progresses and upon loss, can simply restart the level without restarting his game (i.e. their score, bonuses and so on are reset to what they were at the beginning of the level).
example: Gold Miner
5) (sort of in combination with any of the above) - Levels are so easy, and/or player gets so many restarts, that it's nearly impossible to ever 'lose' - player plays on through as many levels as he's interested in before he gets bored or maybe really unlucky and loses.
example: Jewel Quest, Big Kahuna Reef (I don't think I've ever really 'lost' either of these, permanently, in their main gameplay modes).
The problem is that upgrade systems tend to work better with 2,3 or 4, depending on what type of upgrade system you have. I had originally planned to use system 1, as I did on my last game. The plus side of that is that the player never has to replay levels they've already beaten. The down side is that it makes it harder to balance an upgrade/store system.