The idea that a firewall should be an absolute minimal install is good for several reasons. First off, even if your software is "secure" now, nothing says that it will be secure next week, or even later today.

Traditionally a firewall protects multiple servers and/or clients, or even an entire network so high performance is a major issue for the firewall. Every service you have running on the firewall box besides the firewall software will take some amount of CPU time and network performance away from the firewall. Also, ideally you want the firewall box to be accessed by as few people as possible and this means not letting your web admin or db admin or whomever access the box just to "look around".

If someone else has access to the machine, even if their job is only to administer one of the services then you have a security problem with your firewall.
Now if this is just for a home machine or if the firewall exists only to protect one machine then most of the above is probably thrown out the window. But if you have a web server or a database server with peoples' personal information, SSN, CC #s, etc. then you really want all that info on a separate machine from everything else.
With that said at work, our firewall is just a bridging firewall meaning that it filters traffic but it's IP-less. It's basically invisible on the network and is completely inaccessible from a network connection. There's no way to be running other services on it. But at home I have a linux box that runs SSH, an internal only web proxy (junkbuster), and occasionally whatever else I feel like playing with since security isn't top priority for me at home.
BTW Linux with iptables is actually pretty fun and the IP Masquerading howto from ipmasq.cjb.net is really really good.
Gaidin