Es probable que la ralentización se deba a operaciones matemáticas y no a la obtención de datos de tablas. Parte de su criterio no se aplica a los campos de registro, sino al resultado de la operación matemática en otros registros, por lo que se convierte en O(N).
La razón por la que Postgres no usa un índice y elige Seq scan en su lugar es porque decide que la mayoría de los registros de la tabla deberán recuperarse durante la consulta. Cuando se van a recuperar la mayoría de los registros de la tabla, es posible que los índices no brinden muchos beneficios, si es que los hay.
Para acelerar las cosas, debería considerar el uso de índices espaciales y la búsqueda basada en la vecindad de PostGis o, alternativamente, Elasticsearch con Consulta de distancia geográfica .