Да, это небезопасно.
Возвращение адреса локальной или временной переменной и разыменование его приводит к неопределенному поведению.
Как вы прокомментировали:
Да, время жизни временной привязки кпостоянная ссылка увеличивается до времени жизни постоянной.Но для этого требуется, чтобы вызывающая сторона приняла возвращаемое значение в константной ссылке, поэтому сама функция не будет безопасной.
Из стандарта C ++:
C ++ 03 12.2 Временные объекты:
Второй контекст - это когда ссылка связана с временным объектом.Временный объект, к которому привязана ссылка, или временный объект, являющийся полным объектом для подобъекта, к которому привязан временный объект , сохраняется в течение времени жизни ссылки , за исключением случаев, указанных ниже ...
Временная привязка к элементу ссылки в ctor-initializer конструктора (12.6.2) сохраняется до выхода из конструктора.Временная привязка к ссылочному параметру в вызове функции (5.2.2) сохраняется до завершения полного выражения, содержащего вызов. Временная привязка к возвращенному значению в операторе возврата функции (6.6.3) сохраняется до выхода из функции