I think its necesary to "ban" them
there might arouse the problem of the (client) share function which sometimes just stops to work. The user/engine then gets a "client error occured or no files shared" and no matter how many files you share you'd get banned (a reshare or a simple share refresh helps in that case). For the nicotine+ there are a few modules available doing exactly what you want. What I'd miss much more is a Quota (where n+ does have a Plugin as well): you DL a lot then you have to UL a lot else the quota engages and throttles you DL (bandwidth).
I'm absolutely with you for leechers and non sharers as they destroy/corrupt/undermine the SLSK network. Problem is: what about the funny sharers who just index there windows directory and then have 160k files shared, wonderful for automatics to see (He shares=> OK) and poisoning the network. I'd imagine that the quota could be created in synergetic to the (pay) credit system.
I think It is easy to program the fact to distinguish when it arrives without archives or when there is an error in the list