I think you agree that as developers, we are obviously trying to match the requirements of the next guy in line, being another dev or a user and must also strive to make the usage of our work as easy and safe as possible. Members hiding quite enforces part of this safety, avoiding a lot of side effects on the state of our instances.
Going further, we might better follow the steps of the functional guys by making vars immutable by default.
Anyway, going back to APIs stability, you are right that private members usage is a failure of both the provider and user side. But as +Gustavo Niemeyer
wrote, pointing fingers is useless, we'd better off avoiding such a situation altogether, right ?
Dunno why I had to reignite this thread, this debate is maybe 20 yo, and already won looking at the languages landscape.
You can't trust people too much, python, or you'll get abused ;)