While this would certainly still not solve the problem of non-target nodes receiving an excessive number of packets that they would have to discard, it would significantly ease network and server usage. SafeX. 'A' claims 'B' and 'C' as friends. B and Cs list to its own, appropriately adding the network distance and noting which files came from who. User on A selects a file in the list for downloading. A broadcasts a file request to both B and C, encrypted with Cs key, since the file was in Cs transmitted access list.
C decrypts the file and stores it locally.
F, G, and H discard the unreadable packets. C encrypts the file with As key and transmits it to A, D, E, F, G, and H after a random amount of time and with a random amount of padding. D, E, F, G, and H ignore the unreadable packets. Note that D only knows that C is requesting a file and doesn't know whether C is a proxy or a client. I'm not sure of a good way around this.