How are ListLabels, ArrayLabels, etc. implemented?

And allowing each function application to reorder arguments makes it even worse.

In any case as @nobrowser hinted, you can always try to find orders that are more convenient than other if you think about how your function is going to be used (in a map, in a fold, etc.).

That being said in applications (vs libraries) where you can easily get a dozen of labels (or record fields) I simply tend to fallback on alphabetical order.