My own experience has no frustration, because I took the time to check. I only guess that other's experience may yield frustration for them, witnessing the reluctance or anger of some of my co-workers to any kind of change. Surely, I do not feel real problems myself. Maybe I should shut up. I only thought useful, at least a bit, that I try to explain what I see around, because I know my co-workers are not going to step in the public discussion arena (they also have to go over the English barrier), and presume most users are just silent alike.
Now consider my frustration. We go through a lot of efforts to make consecutive releases backwards compatible, to document changes, to introduce warnings about future incompatible changes, etc. And here you are referring to second-hand frustration with the pace of change, which cannot be substantiated. Is it not fair that I ask you to provide more details or shut up? After all it is a fact of life that many people like to complain without reason, will not admit to their own mistakes, and blame them on others.
Hm. People who don't read the detailed documents shouldn't expect to rely on details.
You know, everything is a detail of some sort, and at least for newcomers, the language and the library are mere accumulation of details. Users just cannot program without relying on these. One needs a lot of perspective for sorting out the relative importance of various specifications. So, in your argument above (which I find a bit harsh), it might not be very realistic expecting that people read everything in every release. It is reasonable to expect users to read everything once, however -- and users may then have to wave between sites, distributions, and Python releases.
Actually, in my experience, most users don't read the manuals even once (what I know of your personality, you are an exception). Example: the possibility to write list.append(a, b, c, ...) was never documented, yet it caused widespread complaints when we disallowed it.
My expectation is that what is really going on here is that people write code that uses undocumented features, because they found experimentally (or accidentally) that certain things work in one version, and do not bother to check the reference manual if the language guarantees the observed behavior.
If your code only uses documented features, you won't have a problem upgrading, and if upgrading breaks old promises, this is mentioned very prominently in the release notes.
--Guido van Rossum (home page: http://www.python.org/~guido/)