Som dokumentationen säger:
Säger inget om att byta start_expression och end_expression för att matcha min och max värden. Du bör förvänta dig resultatet som dokumenterat, inte som du tror att det borde.
För de nyfikna där ute specificerar ANSI SQL99-standarden att BETWEEN-predikatet ska inkludera en sats för SYMMETRIC eller ASYMMETRIC jämförelse. Endast den SYMMETRISKA får byta startintervall och slutintervall, den ASYMMETRISKA måste vara strikt. Den ASYMMETRISKA formen är den implicita formen. Med andra ord en implementering som tolkar A BETWEEN X and Y
som (A>=X AND A<=Y) OR (A>=Y AND A<=X)
, som OP föreslår, är inte standardkompatibel.