Requirements:
- firewall
- internet connection sharing
- DHCP server
- Freenet (Sun Java)
- torrent
- Samba
- SSH server
- Take up as little RAM as possible.
- Must be 100% usable in console (remotely over ssh).
Requirements:
Do yourself a favor and pick a distro with an active support community such as Fedora or Ubuntu. For some one with little experience (or a lot) it can be an invaluable tool. Most likely someone else has had your same (or a similar) problem. With Fedora I regularly use sites such as fedoraforum.org and stackexchange sites (of course).
They all can perform those functions for the most part, but something like Fedora is always easy to recommend.
Any Linux distro can do all what you need. If you need a more desktop oriented system I would recommend Fedora or Mandriva, if you need a more corporate oriented system I would recommend CentOS.
FreeBSD - maximum flexibility, functions, lots of programs, lots of manuals. Easy to install following instructions. Easy to install any programs.