I agree with you though, the inherent problem is that they are private spaces and should act like it. That means developing the ability to interoperate with other private spaces (some sort of federated protocol would be required), and not having monopolies on distribution (being able to acquire iOS apps from 3rd party channels, for instance).
By extension, if anyone is considering legislation to enforce freedom of expression on social networks, I'd propose a different track—break up the largest of the social networks (namely Facebook at this point) and force them to interoperate.
That seems a lot more practical than forcing private companies to hold up public standards of free speech.
If you want to spread an idea now, you won't walk to your local town a square and start talking on a makeshift podium. You'll post a tweet or a facebook post, or make a reddit thread.
I feel like they're screaming at the top of their lungs asking you to not think of those things as public spaces. I am happy to try to oblige them.