Não importa, eu encontrei o problema.
O planejador de consultas era mais inteligente que meu conjunto de teste de brinquedo; visto que a maioria das linhas corresponde à consulta, foi para uma verificação sequencial.
Se eu tentar com
ilike '%nd 0%' em vez disso, nenhuma linha corresponde e EXPLAIN ANALYZE informa Bitmap Index Scan on test3_value_trgm_idx corretamente. Portanto, normalizar o JSONB original dessa maneira funciona. Mas também tentarei encontrar e comparar de outra maneira, usando expressões regulares sobre
TEXT , para evitar ter que criar e manter outra tabela.