Just so you know you don't need very fast hardware for it to be a router with that 300/20 line of yours.
My router:
Dell OptiPlex 755
Intel Core 2 Quad Q6600 @ 2,4Ghz
1x 2GB DDR2-800Mhz
8GB SSD (This machine sits in the living room, so rotational noise would not be good. I don't like USB sticks for an OS, so SSD it is. It was just laying around, so why the heck not .
Onboard Broadcom NeteXtreme Gigabit adapter (Used for WAN)
2x Intel PRO/1000 Gigabit adapters (1 for LAN and 1 for later use, maybe DMZ)
PfSense 2.3.2
This all runs a 50/50 fiber line. It will be upgraded to 300/300 in the near future, so I think it will hold.
I live in the Netherlands, it's all fiber here (the whole city), and Coax is not really an option.
The best thing about fiber is:
1. No worries about lightning storms
2. Nice ping times (not that I care. Everything I do on my network, isn't latency related)
3. Speeds up to 1000Mbit. Yes, 1Gbit/s. You read it correctly
My pfSense hardware goal was quiet, performance, and low'ish wattage. I made sure it was a fanless design-no chasis cooling and active coolers for the PSU. So, basically I purchased this motherboard: http://www.asrock.com/mb/AMD/QC5000-ITXPh/, a (legit) Intel i350-T2v2, 128GB SSD, the chasis (it was on sale, but an excellent chasis for this) http://www.coolermaster.com/case/mini-itx/elite110/, and a Seasonic platnium rated fanless PSU. It cost a little few hundred total, some rebates took the price down a little, and my cost in power has not gone up at all. Just a side note, I also use my R7000 as my AP with XWRT-Vortex.
Forgot to mention, that memory speed is very important for networking so I made sure that there was 1600 DDR support, and purchased a low latency CAS 9 8GB DIMM for firewall. It was so inexpensive there was no reason not to, and the fact that this can be turned into HTPC memory at 8GB was a perfect overkill.
With Comcast IPv6 works perfectly and at 240Mbp/s it only hits 12% with my simple network. I can easily add more work to it, but haven't as of yet.
Multi port cards and packages such as PFBlockerNG can increase the MBUF. You most likely never need to, but you can easily increase the size of the memory