Ответ 1
Соответствующая часть стандарта находится в §12.2
:
12.2.3) Временные объекты уничтожаются как последний шаг при оценке полного выражения (1.9), которое (лексически) содержит точку, в которой они были созданы.
Кроме:
12.2.4) Существует два контекста, в которых временные объекты уничтожаются в другой точке, чем конец полного выражения. Первый контекст - это когда вызывается конструктор по умолчанию для инициализации элемента массива.... [ не применяется]
12.2.5) Второй контекст - это когда ссылка привязана к временному. Временное, к которому привязана ссылка, или временное, являющееся полным объектом подобъекта, к которому привязана ссылка, сохраняется для времени жизни ссылки, за исключением:
...
Временная привязка к эталонному параметру в вызове функции (5.2.2) сохраняется до завершения полного выражения, содержащего вызов.
Итак, вы идете. Временная stringstream{}
привязана к ссылке в вызове функции, поэтому она сохраняется до завершения выражения. Это безопасно.