Permanent ban seems pretty unreasonable.
everybody says this.
The point of a ban when it comes to the internet is to remove a problem from the environment.
Strictly the only reason I'd ever consider not permanently banning a teamkiller would be if the server suddenly lost all of it's popularity and nobody ever visited anymore. However, because of the fact whenever Heed hosts, it fills to around 20-50 people at once, that is not a problem.
On the flip side, because it's a permanent ban, I make sure to only ban when I've directly witnessed someone teamkilling (requests are acknowledged and I spy on the person, but I don't take ban requests). I've only unbanned once and the person was unbanned because they gave a decent evidence that it was a misunderstanding and didn't cuss me out over IRC.
Here's an individual piece of evidence to how smart the average banned user is, look at this video where the user complains about being banned for teamkilling, but does it right on the footage.
http://www.youtube.com/watch?v=xwswf9chzzwskip to 6:58.