Bem, problema resolvido, afinal. foi um pouco de tunning do Windows e um pouco de tunning firebird.
No lado do Windows, o setcache realmente fez o truque em manter o tamanho do cache do sistema de arquivos sob controle, mesmo com a microsoft dizendo que eu não precisaria disso. Acabei de adicionar uma tarefa de agendamento para executar em cada inicialização.
mas mesmo depois de diminuir o uso da memória, meu banco de dados ainda usava 12,5% da minha caixa dual-core: 100% de um núcleo, e o desempenho era terrível (30s para selecionar todas as tuplas de uma tabela com apenas 10 tuplas).
depois de algum monitoramento com a sinática (www.sinatica.com), percebi que meu banco de dados estava varrendo. Por isso, desativei a varredura automática e adicionei outra tarefa de agendamento para fazer varreduras em uma base de dois dias.