This is intended as a metaphor for a software system. I have seen reference to "features as points in functionality space, and stories as journeys between these points", iirc, somewhere on this Wiki.
The point on TotalNeglectOfRefactoring is that a hilly functionality terrain will encourage or necessitate some strange detours. If you don't take the bulldozer to that little hill (e.g. refactor that DuplicatedCode or make some useful abstraction) then the next paths you make will probably go round the hill or over it: hard for the programmer or hard for the user.
Too many twisty paths round the many hills will leave a mess - you hit the FrankensteinPoint.
We can illustrate the "buying goods for the wrong price" problem in this metaphor. It should be impossible (or at least, a HardProblem?) for the user to climb the mountain that has goods at the top which don't need to be payed for.
Some online store developers prefer a small cliff face or a little fence, because they don't think anyone will figure out how to climb it.
My bugbear with some applications is the presence of precipices in functionality space. The user may stroll along a paved path safely, but the slightest deviation sends him plunging off into some abyss of brokenness.
The FunctionalityLandscape as perceived by the user should, in general, be a valley. If you stray off the beaten path, you should find yourself going up hill. Getting back on the path is easy - just roll.
Earlier, I said,