SQL の仕組みについて根本的な誤解があります。SQL 言語は、返される結果セットを指定します。データベースがこれらの結果を達成する方法については何も述べていません。
ステートメントを解析し、正しい結果を生成する実行計画 (できれば効率的な計画) を考え出すのは、データベース エンジン次第です。最新のリレーショナル データベースの多くには、ステートメントを完全に分解し、元のクエリとは関係がないように見える実行計画を導き出す高度なクエリ オプティマイザがあります。(少なくとも素人の目には)
エンジンがコストベースのオプティマイザーを使用している場合、同じクエリの実行計画は時間の経過とともに変化することさえあります。コストベースのオプティマイザは、データとインデックスについて収集された統計に基づいて決定を下します。統計が変化すると、実行計画も変化する可能性があります。
単純なクエリでは、データベースが where 句を適用する前に、テーブルを結合して一時的な結果セットを作成する必要があると想定しています。それが問題についての考え方かもしれませんが、データベースは自由にまったく異なる方法で実装できます。単純なクエリに対して一時的な結果セットを作成するデータベースが (あるとしても) 多くあるとは思えません。
これは、インデックスがいつ使用されるか、または使用されないかを予測できないと言っているわけではありません。ただし、データベースがクエリを実行する方法を理解するには、練習と経験が必要です。