[...] What's still unclear to me is whether library authors are expected to
follow the same strictness semantics in their Ord instances. For
example, if I were to expose my Const type with its lazy Ord instance
from a library, would that be surprising for users of the library?
IMHO it would be a bit surprising, as a general rule of thumb: Everything which is done differently from the way base/Prelude does it is surprising. It's not necessarily wrong, but at least it needs some prominent documentation, including the reasoning behind it.
Could someone illustrate in what kind of issues the reduced strictness
might manifest?
In short:
* too strict: non-termination
* too lazy: space leaks