Зависит от того, что вы подразумеваете под неопределенным. Я верю тому, что здесь сказали другие - по определению документ по стандартам. Но я также знаю, что когда кто-то говорит «или то, или другое, я не говорю вам, что», я думаю о нем как о неопределенном поведении.
Это не имеет большого значения, так как это никогда не должно вызывать ошибки. Когда вы определяете определенные методы, вы должны определять их в соответствии с конкретными соглашениями - это своего рода неявный договор между вами, компилятором и людьми, которые будут использовать и поддерживать ваш код.
В этом случае, независимо от того, получаете ли вы конструкцию копирования и т. Д. Или оптимизированное поведение, ожидается, что эффект будет таким же - вызывающий объект получит требуемое значение. Если ваш конструктор копирования печатает "Hello World!" или имеет другие несоответствующие побочные эффекты, он не реализует ожидаемое поведение для конструктора, поэтому вы виноваты в нарушении контракта.