Ordering is a problem because there's no good way to handle duplicate members. If you have a generic function `f(T) -> T|A` what is the compiler supposed to do when T = A|B? Return A|B|A breaking the main rule of unions or give up and throw a compile error?
And set unions are supposed to be unordered anyway. You're going against what everyone expects from other languages and basic math.