The way they are using to route around the Go 1 compatibility promise is to gate these backwards incompatible changes on the value of the go directive in go.mod.
If it says 1.22 or later you get the new library behavior, otherwise you get the old one.
We'll see how well this ends up working in practice.