Das finde ich auch merkwürdig. Sind deine Daten vielleicht trotz deiner where Klausel ungültig? Wenn der Optimizer das wirklich so seltsam macht, bleibt dir vielleicht nur dir Möglichkeit, das irgendwie mit einer case-Anweisung zu lösen.
Aber ich würde auch erwarten, dass die select Auswertung erst nach dem where ausgeführt wird.