The Ultrapeer system seems only to relay search queries to you (as a leaf) that match a file that you have. So a freeloader uses approx 0k/sec to connect to 4 ultrapeers while a person sharing 300 files might need 1-2k/sec.
FastTrack, on the other hand, just uploads a list of your files to a SuperNode or two, and once that's done you don't need any bandwidth to stay on.
I think that LimeWire should have done the Ultapeer system more similarly to this, as it would probably save the Ultrapeers a lot of bandwidth not relaying all those queries to their leaves. The Ultrapeer would "browse host" to get a list of the leaf's files and then be done with relaying queries to you. Of course, Gnutella & FastTrack couldn't be identical, that would make it useless apart from being open source. But hey, life ain't perfect.