At that point it's easier to run your own instance, I guess? As it stands now, it's not trivial to scale neither the db storage (postgres) nor the backend (lemmy).
I don’t think that users’ donating parts of compute is a way to go, honestly. You’ll have to think about bad actors (such users will effectively be instance admins for some subset of data), and it might quickly deteriorate into the weird crypto world (aka let's use blockchain as a storage because no one can be trusted to really count the upvotes).
Unfortunately, it's a very tricky issue to solve. I'd say donating to your instance so that its operators have enough finances to support it is the way.
I think storing the DB in multiple places is the most important part of this. There could even be different levels of cohosting. You would ideally always have at least two servers hosting the full DB going all the way back in time. Those would be the most important to implement just to have an always available service. Then you could have people that might not have enough resources to hold everything just host all of the most recent and high-demand data. Some advanced server architecture will for sure be needed if this model is going to succeed. It just isn't possible to do everything on a single server. As far as processing load from running the server, I can't imagine that will be much of a problem compared to actually storing the data. I am sure a lot of this is all problems that have already been solved and old solutions could be used. Maybe something similar to the torrenting system, with just a few controller servers.