In practice the "split path" scenario is only a problem when topology changes. Routers typically use a hash of source and destination port, source and destination IP address, and sometimes ingress port id to pick which of N equal paths to take.
This is done not just to preserve end destination, but so every sequential packet in a flow follows the same path, thus must arrive in the same order. (Different paths have different latencies because of distance and buffer depth on the routers.) Many tcp implementations will back way off as soon as they see out of order packets, so network providers must do this.