The C++17 change catalogue distinguishes new syntax from changed semantics
engineeringcppstandardslifetimesP0636R0 separates facilities programmers opt into from changes that affect existing expressions. Guaranteed copy elision shows why that distinction matters for interfaces returning objects by value.