Azureus is a good popular one, only down side is it written in java, i hate java, so slow.
I use ABC (http://pingpong-abc.sourceforge.net/) which is ok, seems to work fine for me, but friends have had a couple of problems with it.
As for the upload thing, it depends how the client is written - But from what i understand the upload cap should be for uploading of data of the torrent itself, not the requests out to the tracker and connecting to peers etc... otherwise it would flood itself in with the data being uploaded. Also from the tracker specs i've read, which was a while ago - they do take note of how much you uploaded and are uploading, and give you more/less sources, so by uploading 10k/s rather than 5k/s, you should get better download speeds (as long as you aren't flooding/maxing out your upload bandwidth). But if your getting speeds your happy with by capping the upload at a lower rate then your doing fine