Я бы не слишком беспокоился об этих оптимизациях на вашем месте. Помимо всего прочего, они не являются портативными.
Если вы беспокоитесь о написании эффективного кода на C ++, правило номер один - вообще не копировать. Убедитесь, что вы используете ссылки во всех местах, где они возможны, но не пытайтесь использовать их там, где их нет. После всего этого иногда вам действительно нужно новое значение - например, возвращаемое значение для реализаций оператора + ().