_NN_:
_NN>Мы тут обсуждаем именно подкапотную работу, а не абстракции языка. _NN>То, что всё передается по значению по умолчанию это свойства языка и никто с этим не спорит, вопрос будет ли это достаточно эффективным в случае string_view или нет.
В случае, когда функция инлайнится, calling conventions ничего не решают.
В случае, когда вызов функции не инлайнится, следует учитывать не только то, каким способом на низком уровне будут переданы аргументы, но ещё и насколько удобно компилятору будет оптимизировать код после такого вызова. Передача аргумента по const reference никак не защищает его от изменения внутри вызываемой функции, т.к. она легально может применить const_cast (если объект изначально не const) и дальше делать с ним что угодно. Когда же локальный объект куда-то передаётся по значению, отследить, что его не модифицируют, заметно проще.