C++ копирование именованных (следовательно, не временных) возвращаемых значений

(Именованный) Оптимизация возвращаемого значения является исключением из правила "как если бы", регулирующего оптимизацию, которую могут выполнять реализации C++.

Он позволяет выделить копию (названного) возвращаемого значения, если это локальная переменная или временная.

См.: copy-elision