I like a system where areas have relative difficulty indicators (not necessarily linear) and that player skill factors in, but does not direct the curve.
For example, an experience such as this:
1 - 1 - 1 - 2 - 1 - 2 - 1 - 3
where ...
...1s are "easy" areas
...2s are "medium" areas
...3s are "hard" areas
Would play differently based on player skill.
If the player did fine in one area, the next (or the current area) could shift gears up to +1/-1 depending.
So the player experience might end up this:
1 - 2 - 2 - 2 - 2 - 2 - 1 - 3
The player fared well in the first area, making the next one +1 harder than its natural value. Then, the system deems that +1 was an ok fit for the player and has the 3rd area with a +1 to difficulty. The player did "ok", so the next area (a 2) remains at 2 because the player has not demonstrated that beating that area was too easy, etc.
You could the player level in as well (assuming RPG power curve) where:
Final Area Difficulty = Natural Area Difficulty +/- Difficulty modifier + (Level / 10)
(All placeholder values). 10 might be too strong a divider, so the unit system would have to be balanced efficiently (I'm leaning towards a + 1 difficulty ever 3-4 levels instinctively, so the natural area difficulty and modifier could be larger numbers).