The problem is, vendor provided software cannot work like that. You have descibed several cases of potential interest to you, from purely linear spacing, to a geometric spacing, to a spacing that starts out as linear, but then switches over to a different style of spacing, all perhaps with an end points of 0 and 1, but perhaps not always. And tomorrow, you will probably want something more creative yet. A general tool like linspace cannot be that flexible, nor can it read your mind. That is why, as Daniel said, you are the one who needs to be the supplier of intelligence.
Nothing stops you from writing code (a simple function) that allows you to specify a linear sequence up to some point, and then a geometric increasing one after that, to some arbitrary end point. Even If nobody else in the universe seems to care for that specific scheme, you can always create it - that is the beauty of a language like MATLAB. As well, your function need not be incredibly elegant, as long as it is sufficiently efficient that it does not create a bottleneck in your code, then who cares?
For example, suppose you wanted to create a function that takes three break points, and a number of points to generate in each segment? Then it would return a sequence that was linear in the first part, and increases geometrically in the second half of the interval?
function X = crazyspace(breaks,N1,N2)
X = [linspace(breaks(1),breaks(2),N1),logspace(log10(breaks(2)),log10(breaks(3)),N2)];
X(N1+1) = ;
So we would expect...
X = crazyspace([0 .5 2],4,5)
0 0.16667 0.33333 0.5 0.70711 1 1.4142 2
I'm sure I could have written it differently, but who cares? It would work. It is efficient.
Or, perhaps you could have some other spacing in the second half of the region, perhaps using cumsum. You are the driver here, as you should be.