I think it’s better to treat the two issues as separate. It would be first worth answering (in the prior art section after discussing a bit what Boost.Units does) whether we need a total order between units for something at all. What would that buy us? What does that buy Boost.Units? Does this total order need to be global (which as you say won’t scale) to buy us something, or is it enough for it to be system local? And finally, depending on what it buys us, and how much it costs, then explain the rationale of whether we want it or not and why.
I think that independently of the implementation chosen, if we need a total order, and this order must be global to be useful, then that’s bad news. Adding a new base unit would mean having to specify its order with respect to the system somehow, but crates do not know about the base units specified by other crates, so I really don’t know how such a global total order could be implemented in a way that scales.
As to the specific way in which one can implement total ordering of base units, I’d say it would be better to just ignore the specific implementations until the other questions are properly resolved. I’ll read the F# unit publications these days, since maybe the questions I am posing are dumb if one has read those (but the RFC should not assume that everybody has).