In this example rust doesn't just make me aware of the tradeoffs. It almost feels like the language is actively standing in the way of making the trade offs I want to make. At least as the language is today. I think a bunch of upcoming features like unsized rvalues and async fns in traits will help.
Meaningless? I value private communication with my friends and family. I don't exactly need anonymity there. In fact I want the opposite. In the absence of phone numbers I would be adding very explicit metadata on my device to distinguish between my friends.
Signal has taken measures to limit its ability to know who I'm sending and receiving messages from. Though it's still possible by mapping my IP address to me. So yes there is still a centralized metadata problem, but I'm not letting perfect stand in the way of better.
That still sounds like a bad model for paying artists. If I sign up for Spotify and only listen to a few artists I'm fond of, those artists get next to nothing of my subscription fees. Instead I'm subsidizing the payouts to artists like Drake. Who I have nothing against, I'm just not listening to his work.