In the client, you wouldn’t need to be sorting and running extensive calculations on all data. You could, e.g, build the front-page by indexing/scoring posts and comments that have been created since your last visit with a hard cap on some time window (last 48h) or total data points (e.g, keep only the most recent 10k objects in a local hot database, freeze/archive everyhing else.)
Absolutely. There's a lot you can do. The "For You" Feed on Bluesky is quite instructive. https://bsky.app/profile/spacecowboy17.bsky.social/post/3mb2r5qei322a
But when you're talking about sending a lot more data to clients, you really need to consider what that means for the internet bill of instance owners.