Som dokumentationen siger:
Siger ikke noget om at bytte start_expression og end_expression til at matche min og max værdier. Du skal forvente resultatet som dokumenteret, ikke som du mener det burde.
For de nysgerrige derude specificerer ANSI SQL99-standarden, at BETWEEN-prædikatet skal indeholde en sætning til SYMMETRIC eller ASYMMETRIC sammenligning. Kun den SYMMETRISKE har lov til at bytte start_range og end_range, den ASYMMETRIC skal være streng. Den ASYMMETRISKE form er den implicitte form. Med andre ord en implementering, der fortolker A BETWEEN X and Y
som (A>=X AND A<=Y) OR (A>=Y AND A<=X)
, som OP foreslår, er ikke standardkompatibel.