No, puede indexar un campo booleano si lo filtrará. Eso es algo perfectamente razonable, aunque como con todos los índices, PostgreSQL puede optar por ignorarlo si no excluye suficiente de la tabla:un escaneo de índice más una tonelada de búsquedas de filas puede ser más costoso que un escaneo secuencial. - que puede o no afectarle según los valores de esa columna.
También debe tener en cuenta que PostgreSQL le permite poner condiciones en los índices, lo que a menudo encuentro útil con los campos booleanos. (Ver Índices parciales
para más detalles.) Si normalmente filtrará u ordenará dentro de ese ámbito, es posible que le sirva mejor algo como CREATE INDEX ... ON table (some_field) WHERE boolean_field
.