Eu estava entendendo mal a interação entre ag e fzf, achando que a consulta que eu digitei foi de alguma forma passada por ag antes de pipilar para fzf. Em retrospecto, esse foi um erro tolo de se fazer, já que a filtragem é exatamente o que o fzf faz, e o ag está sendo usado simplesmente como uma maneira de gerar toneladas de linhas significativas.
Para obter o que eu queria, analisei o formato das linhas geradas, por exemplo
plugin/coherent.vim:set incsearch
Diga ao fzf para tratar :
como o delimitador de campo e que ele deve restringir o escopo de sua pesquisa aos campos 2, 3, 4, ...
ag --nobreak --nonumbers --noheading . | fzf --delimiter=: --nth=2..
Isso será interrompido se algum arquivo processado contiver um :
no nome do arquivo, mas isso é algo que não espero que aconteça com muita frequência.