Or maybe it's better lesson is that no one tries to force the direction of the language. English is a bastard language, no one "controls", even as much as our grammar school teachers try to force us to use the proper form. I always find it interesting that many people who learn English as a second language often understand and know the formal rules of the language better than those of us who've spoken it natively.
The examples that the OP point out are top down choices made by "leaders" of the community. Those leaders may have created the original programming language, but then fail to realize that it is not they that control it, it is the community. And communities often don't want to be forced in one direction or another. What they like is for things to be grass roots, everyone in the community recognizes the issue, a proposal is put forward, and everyone then agrees and progress is made.
This is one reason that I'm enjoying Rust's process, example: try!(..) was a macro based bandaid over the unwieldy nature of the strong error Result type in the language, it's usage has created code which is ugly and verbose. Enter Swift with its ? syntax and everyone recognizes that this is a less verbose and cleaner way to represent the same concept. So Rust is in the process of adopting ? (It's in nightly now I believe). I don't think there is much controversy here, and the community recognizes the importance of adopting this language change (I read through the RFC and don't remember anyone against it, just differences on the scope of its meaning).
In English there have been similar things, and the controllers have always tried to stop their usage, "ain't" is a great example of that. English teachers across the US have always tried to stop its usage as a fake low class word, but it's just too good and they ain't going to stop it.