Из C ++ 11 viepoint ссылка, возвращаемая функцией, является not временным:
12.12.1 Временные члены типа класса создаются в различных контекстах : привязка ссылки на prvalue (8.5.3), возвращающая значение pr (6.3), преобразование, которое создает prvalue (4.1, 5.2.9, 5.2.11, 5.4), генерируя исключение (15.1), вводя обработчик (15.3) и некоторые инициализации (8.5).
Функция, возвращающая ссылку dosn't return prvalue ("pure rvalue"), поэтому она не является временной. Это кажется вполне естественным: компилятор не может управлять временем жизни ссылочных объектов, это ответственность программиста
Таким образом, компилятор не предоставляет никаких гарантий лифта для const int & amp; поскольку он не ограничен временным.