The Gnutella network is designed to be a purely peer-to-peer network. Unfortunately, not all would-be file sharers are created equal - some have fast connections, some do not. The Gnutella network was not designed to handle such huge inequalities gracefully.
When a fast node connects to a slow node, the slow node will not be capable of accepting packets fast enough, and most clients will simply drop it. This has caused an "undernetwork" to form - people without enough bandwidth to share, trying to share with other people without enough bandwidth to share.
This is obviously not an ideal situation. People with less bandwidth should not be expected to bear the full load of a large gnutella node. The obvious solution is, of course, creating an extension to the protocol that allows searches to be "injected" into the network, without the originating node needing to be fully connected to the network.
Without an official channel to discuss and implement protocol changes, the problem is made more difficult to solve. Altering the protocol inevitably fragments the network even farther, because of the several different groups who supply clients, all working seperately. A respectable authority figure needs to step in and make a decisive statement in order to cause a universal change in the protocol.
For example, the use of the new version 0.6 protocol has not become widespread until recently, although its specification has existed for years. BearShare originally adopted the protocol, and created a network of almost exclusively BearShare users.
The mass exodus of Morpheus users has worsened all of these problems in various ways, by increasing the number of dial-up users, and by adding one more client to the already disorganized group.