The return-as-rvalue rules changed in response to the review before publication of C++14. The change was added late in the process and is captured by CWG Issue 1579, that amends 12.8/32 with the wording:
or when the expression in a
returnstatement is a (possibly parenthesized) id-expression that names an object with automatic storage duration declared in the body
This means that returning any local variable now considers the object designated by that variable as if it were an rvalue first (trying again if overload resolution fails).
Since the CWG issue was accepted as a defect in the language, compilers may implement this new rule even in “C++11 mode”. The point of a defect is that “it was always meant to work that way”, so this isn’t strictly speaking a change between C++11 and C++14, but rather, the meaning of C++11 was modified in 2014.