Results that trickle back a minute or two after the search are not uncommon. Just because no results have arrived doesn't mean results won't arrive in the future. Furthermore, Gnutella networks are created spontaneously and randomly. Nothing prevents the networks from becoming segmented into disconnected parts. If the client is connected via a modem, it simply will not be able to receive and process all of the search requests that come its way.
Clients handle file downloading and serving, while servers handle processing search request.
Thus, if a client has a slow network connection, it can still participate in the network by searching for, downloading, and serving files. If the client isn't serving very popular files and isn't downloading many files from others, very few connections will be established to it, and it will process very few messages. No search requests are ever processed by the client. On the other hand, servers can be run on machines that have fast network connections and memories that are large enough to store the file index. Since the server network is distributed, not even servers must process every search request.