The Theory of Responsible API Evolution looks excellent!
Have people considered making a tool (or extending cargo) that will automatically report on API changes / potential breakages, and the corresponding semver requirements? All of the examples given (for major/minor changes) look statically analyzable.
Elm took this approach, where the packager enforces semver from an API/types perspective: see packager readme
While this certainly doesn't rule out all versioning breakages, it sounds fascinating.