I like the idea of gnutella being a global network.
Saying this... it might be very good idea to
specialize gnutella horizons a little bit. You know for sure, a gnutella user is never connected to the whole gnutella network, it's too big. Instead you can only see a crowd of other users, the so called "horizon" within the network. Having spezialized horizons you could find more "rare files" or meet people with same interest (regional interests, same music taste, cook recipes etc). Together with a chat feature maybe?
My suggestion to achieve/implement this extension within a upcoming gnutella client: Each user can edit some keywords to describe his interests, e.g. "synthpop, italian food, OpenGL" (case doesn't matter). On connection gnutella clients exchange keywords with each other. Now every client tries to establish at least 1-2 gnutella connections to clients with same interest, this is constantly done. As a result gnutella horizons are dynamically sorted with slightly specialized horizons _AND_ still building a global network (important if you don't want to be stuck in a regional segmentated network).
Looking into far future, it might be possible to do horizon travelling.... search movies in one horizon and then step further to get the latest outer space cook recipes in another horizon. yeah.
Hope you like my suggestion, Moak