Versioning is for machines and developers. Versioning is the way to communicate the scope of change. Tools rely on it. The ideal package manager should reject non-major releases that have breaking changes.
Softwares that don't respect Semver actually don't respect the developers that use them.
End users don't care about the version of your product (even if they are developers). Fast, what's your current Chrome or Firefox versions? (Hint: greater than 48)
I've yet to experience any serious issues updating SQLAlchemy versions and the guides for upgrading have been top notch.
Instead, a more sane thing to do there is: patch is for bug fixes, like perhaps addinng a `cursor: pointer;` that you forgot to a button. Minor is for adding new features, and major is for heavily modifying or removing features.
We necessarily include extremely detailed change documentation for a 1.x to 1.y release and our versioning system is described in great depth at https://www.sqlalchemy.org/download.html#versions . I didn't provide an easy word like "romantic" for this website to mock but we're doing essentially the same thing AFAICT.
When Jeremy says "This allows folks, immediately upon hearing about a new release, to get a rough sense of its scope.", that is exactly what we are doing as well when we are suddenly calling an upcoming release "2.0". The scope is dramatically broader than the scope in which we move from 1.x to 1.y. It's fun for semver purists to make clever (and definitely funny) websites mocking this need but that does not change that fact that semver does not work for every kind of project.