As I explained in my previous comments, assuming a behaviour is not good enough for me. But even with this assumption, in
Expand[(y + z)^4]
and
Expand[(y + z)^4] /. y -> 1/z
the order is changing with the replacement. The binomial expansion order is not kept. Mathematica recognizes that the result is of a special form, and does undocumented (or at least I did not find the relevant documentation) reordering for the output after the replacement. Again, this is not a problem for computational use of Mathematica, rather it is a strength that it recognizes so many forms of expressions, but it would be nice to know a way of forcing it not to do the reordering in this case after the replacement.
Yes, of course I can write my own algorithms, which is what I ended up doing in this case and also in several other cases (e.g. I am drawing circular arcs using ParametricPlot). I now use
CoefficientList[(z + 1/z)^4*z^4, z]
because it is well documented, and I can get all the information I need from the output.