>484
その DDL に以下を追加してやってみた。(データ件数は1件とした。)
create index test_idx1 ON test(FIELD1, FIELD6, FIELD4);

確かに>>495を実行するとプライマリーキーのインデックス(RDB$PRIMARY1)使ってたよ。
(ところで、カウントを求めるクエリの場合は order by 句は関係ないからオプティマイザが削除してくれてるかも。)

ちなみに "select count(*) ..." を "select * ..." に変えて実行すると
ちゃんと test_idx1 インデックスを使うようになった。
ためしにプライマリキーを定義しなかった場合は、>>489 の言う通り、ちゃんと test_idx1 インデックスを
使うようになった。(order by 句を付けても付けなくても同じ)
(sql dialect 1 にしても同じ結果だった。)

ということで、結論は count 演算させる SELECT の場合に使われるインデックスはプライマリキー固定となってしまう。
(インデックスが使われない場合を除いて)

これは Firebird のバグじゃないか?