i think if a single relay could do everything, fetch and cache everything for you properly, so that your mobile bandwidth was always low, requests fast, everyone you want to see, visible, that would be huge
it would only require a background worker process that catches users follow lists and queries and uses them to build a list of npubs to find and pulls in all of the data within the threads involving those users
there might be other aspects of this i'm not considering but this is definitely one, and if there was many relays following this model they could form a federation, and charge a second tier of user type, other relays, who pay a higher total price but use a lot more bandwidth
i've been thinking a lot lately about how to do this because it scales in a way that makes calculating costs and profit quite straightforward