They can read the changelog. And if they can't be bothered to read the changelog, then why even update?
It's more of a philosophy than a law, and it can't really be relied on that much; as often the developers themselves can't accurately predict what is a major breaking change and what isn't.
The Linux kernel itself has some baggage from the 2.4/2.6 era that Linus is explicitly walking away from.
> often the developers themselves can't accurately predict what is a major breaking change and what isn't.
There is a difference with a breaking change and a bug. All breaking changes are predictable. If you modify API, it possible breaks. If you don’t modify API but it breaks, it is just a bug. If you add feature, and don’ t modify API, but something breaks, it is a bug. You are not expected to apply SemVer for bugs because you can’t predict them.