This is no specific formal guarantee, and the ordering is not guaranteed to be stable even across executions of the same program.
Right now it is the lexicographical order of the NFC-normalized UTF-16 code units, not the scalar values. It's likely that we may switch it to the scalar values in the future. The only place where this would cause an ordering difference would be BMP scalars beyond the surrogates.