Because Reference field target many different models, there is no real way to define an order on them. So the system orders only on the raw data value.
But of course you can try to implement one custom with the order_<name> method but you will have to make a join to each possible tables and create an expression out of all the joined tables. So it will look like the Many2One.convert_order but using a loop to make all the joins.