I totally agree with you. I wouldn't necessarily say that rich people subsidize poor ones, other one we wouldn't see Facebook racing for Brazil and Google racing for India. But yes, one major property of ads is how it adapts to the user's revenue.
I believe that anyone who wants to take on ads, need to understand this first. And to accomplish an ad-free realk, one needs to somehow have people pay differently based on their incomes. And I can't see any way without tracking on how to do that.
One company who managed to do that, to some extent, is Netflix. Their price range from 3$/month (lowest tier in India) to 20$/month (highest tier in France), for pretty much the same service. It's still only one order of magnitude of adaptation. While ads scale from pretty much 0 (poor people who can "mis"spend only 5$/month), to I think maybe 100$ for some clicks.
Basically, from my point of view, ads are a way to raise money based on what people can give, while removing the free-rider problem that doing it directly would raise. Can we make a useful crypto money that fixes this? (you're allowed to a big computation budget, since ads have a very expensive global budget)