I can't answer your question in detail. AFAIK the gnutella.net file stores a list of hosts that are tried on opening LW, and I think the list is upgraded while LW is running (so the list "evolves" dynamically). Each LW thus develops its own preferred startup list, to avoid having to call in to overloaded central caches.
Greg Bildson posted once that people with connection problems should try a buddy's gnutella.net file, when the last-resort caches ("gwebcaches") were being strained a few months ago.
Only a few ultrapeers are really needed to handle a leaf's search traffic (more are really just for redundancy). The ultrapeers handle how far to send your search so it will reach the optimal number of hosts, and I think the formula is dynamic. Our clients cannot be directly connected to 1M hosts. The developers are constantly looking for ways to optimize the network, so the formula is dynamic.
http://groups.yahoo.com/group/the_gdf/ is where the current technical details are publicly discussed/decided; arne's
http://www.gnutellaforums.com/showth...threadid=22696 gives a better intro to how the network has evolved.
cheers