You can think of C++17 as a new language which happens to be able to compile most C++14, C++11, and C++98 programs.
The trouble is, if every new version is _technically_ its own new language, and if you have to break compatibility a little, why not just break a lot and fix everything?
It's not like C++ was ever known for ABI stability anyway.