There is no turning back. Generations of developers will grow up thinking every form of communication and technology by virtue of existing needs a corporate groundskeeper. Government identification will be required for most things.
I don't really blame the companies, though. Unfortunately, it actually is the best means to keep a society of the masses functioning more safely online. What makes it all the more sour is that the very idea that things could be different is eroding away, too.
Imagine if people felt that way about electrical power distribution? Every single thing you ever plugged in required a license to be validated at the time you tried to use an outlet?
For me, it's obvious that better ways of doing things exist, but I'm weird, and possibly a crank.
The solution, in my opinion, is to do the same thing we do with power in the home... limit the damage that can be done by anything plugged in, only giving away a limited capability for power delivery in a given outlet.
The analogous way to do this in an operating system is to discard the idea of providing all of the computing resources available to every program you run, and limit it in some way. The "permissions flags" we've all come to dread, first with UAC in Microsoft Windows, and now on our phones, obviously suck, and won't work.
The way to do it on a desktop, is to allow the user to choose exactly which resources a program may use, at runtime, by dialog boxes similar to the ones they already use, but with the additional behavior that the operating system enforces their choices, instead of just praying a program operates as intended.
On a phone, I don't have as strong an intuition, but I'm sure it can be worked out, both in a friendly, and secure way that doesn't require full time checking with consent from our betters in the corporate overlord hierarchy.
We can have secure and user friendly compute, both in our desktops, and in all our devices.