You can (and should!) tell pip not to do this with '--only-binary=:all:'. Building from source is a lousy default.
Given how often the python community already deals with breaking changes, it shouldn't be much different for pip to adopt saner defaults in a new major version.