As especificações recomendadas para o pfSense são muito, muito, muito exageradas. Sua máquina deve lidar com essa carga com bastante facilidade. Para um ponto de referência, usei um Soekris Net5501 em produção por um tempo e ele caiu a cerca de 45Mbps. Ele foi criado com um Geode de 500MHz, 256MB de RAM e alguns dos piores NICs já criados (Via Rhinestone - driver vr).
Na minha experiência, o obstáculo de desempenho mais comum em um roteador como este é a alternância de contexto exigida por interrupções de disparo rápido. NICs de merda como os Rhinestones disparam uma interrupção para cada pacote que recebem. Isso se torna um grande problema porque cada pacote tem que ser processado, mas oops! No meio do processamento, outro entra. Então você retira, é interrompido, etc. A troca de contexto é uma operação cara e rapidamente sobrecarrega uma CPU lenta.
As boas placas de rede (Intel e Broadcom são sólidas) têm recursos de mitigação interrompidos, o que significa que eles só incomodam a CPU quando têm um certo número de pacotes acumulados, ou quando um timer atinge 0. Funcionando em blocos como este está longe, muito mais eficiente do que a troca de contexto constante.
Alguns sistemas operacionais tentam imitar a atenuação de interrupções com polling - o kernel ignora as interrupções da NIC e apenas verifica seus buffers de tempos em tempos. Isso pode levar a uma taxa de transferência muito maior e menor utilização da CPU, mas às custas da latência, possivelmente perdendo pacotes se os buffers da NIC forem preenchidos, etc. O OpenBSD não implementou a pesquisa. Na minha experiência, a atenuação de interrupções é superior à pesquisa e o preço de NICs decentes é baixo o suficiente para que não haja muita desculpa.
A memória realmente não deve ser um problema. O OpenBSD e o PF são muito eficientes. Em um dia bastante lento (hoje), um dos meus roteadores de produção tem aproximadamente 17.5k estados na memória. Ele também está executando spam, registrando todos os pacotes bloqueados e fazendo um tcpdump em sua interface mais ativa. Usando 191MB de RAM.
Portanto, tudo o que diz que as suas especificações são mais do que suficientes, TCO ou não.