A big topic of conversation at nostrica (nostr's first conference) last month was how to maintain decentralization. One of the biggest concerns was having a client or relay provider build features outside of the protocol to gain market share and enable them to lock-in users.
You are correct that there is no easy solution to these problems. There are draft NIPs that attempt to solve many of the problems you've described. You're welcome to join us in the conversation and work with us to try and solve these hard problems!
https://github.com/nostr-protocol/nips/pulls
PS- I don't think the web is effectively controlled by large companies. Email is a different story though. Hopefully we can build nostr to be more like the web than email.