would it be advised to make them both VM's and have them running all the time on a dedicated machine? My real aim is to make a really kick ass home server that does everything one might need: VPN/proxy, streaming music/video, firewall, NAS. Would it be practical to run all these on their own VM's and have a dedicated machine hooked up to ethernet?
pfSense is designed to be a router/gateway... so putting it on a VM would be kind of an odd setup. Not to say it couldn't be done, but you could probably get lost quite easily in the configuration. (It would be good practice for the setup and tweaking stuff, though, if you want to practice a bit.)
If you're thinking of it like a desktop/software firewall (ZoneAlarm, BlackICE, that kind of thing), then you're not quite right. Think of it more like a router, or the thing that hooks up the Internet to the rest of your network.
I once tried to set up a Smoothwall virtual machine to act as the host computer's firewall -- in other words, set it so that all the inbound network traffic went to the VM first, then "passed through" to the host itself. Didn't work, though... it got bogged down in some sort of weird recursive networking stuff like holding two mirrors up to each other. :)
Regarding FreeNAS, you could have that as a VM, but you would likely experience degraded performance (especially if you had a lot of disk I/O). Really, these applications are designed to run exclusively on one physical box... the trick is, it doesn't have to be a super-massive-high-end-ninja-megacomputer. I put pfSense on an old Pentium III laptop with a dead screen, and it works like a champ. Likewise, I have FreeNAS running on an even older Pentium III desktop (with added hard drives), and it's fine.