Jako dokumentace říká:
Neříká nic o záměně start_expression a end_expression tak, aby odpovídaly minimálním a maximálním hodnotám. Měli byste očekávat výsledek tak, jak je zdokumentován, ne takový, jak si myslíte, že by měl.
Pro zvídavé, standard ANSI SQL99 specifikuje, že predikát BETWEEN by měl obsahovat klauzuli pro SYMMETRIC nebo ASYMETRIC srovnání. Pouze SYMETRICKÁ může zaměnit počáteční a koncový rozsah, ASYMETRICKÁ musí být striktní. ASYMETRICKÁ forma je implicitní forma. Jinými slovy implementace, která interpretuje A BETWEEN X and Y
jako (A>=X AND A<=Y) OR (A>=Y AND A<=X)
, jak uvádí OP, není v souladu se standardy.