In the font-stretch descriptor, it says that:
User agents may swap the computed value of the startpoint and endpoint of the range
in order to forbid decreasing ranges.
I'm pretty sure this is an incorrect use of "may". The spec probably means this to be a "must", phrased something like:
If the startpoint of the range is greater than the endpoint, user agents must swap the startpoint and endpoint for the computed value.