z2 is the last entry from z1. The last entry from an array cannot be strictly greater than the array: it is guaranteed to equal one entry of the array.
Therefore, z1<z2 is not strictly true.
Furthermore because z1 includes z2, if z1 has more than one entry then [z1 z2] would be at least 3 elements if z1 is a row vector, and an error if z1 is a column vector. We can tell from your indexing that if z1 is nonscalar then z1 would be a column vector.
The only way you can reach the xlim is if z1 is scalar and is exactly the same as z2, which would fail the requirements that the values must be increasing.