#pragma once
никогда не станет стандартной. Это обусловлено тем, что поведение этой прагмы сильно зависит от окружения конкретного транслятора, а не от стандарта языка. Прагму поддерживают все современные широко используемые трансляторы, поэтому бояться отсутствия ее поддержки не стоит. Но ведь конструктор копирования не создаёт объект.
Компилятор же создаёт объект, выделяя область в стеке.
Если я напишу функцию (и позволю компилятору создать конструкторы, а так же отключу оптимизацию)