Ответ 1
Цитата из формулировки, по-видимому, подразумевает, что компилятор может правильно вставить код, который возвращает память, связанную с объектом, в кучу в начале своего деструктора. Но это устраняет способность объекта ссылаться на свои собственные члены во время разрушения, что требуется, если объект должен сам уничтожить себя.
Поэтому я думаю, что цитированная формулировка нарушена и должна быть исправлена.
Относительно того, что означает "жизнь" и "существование", я предлагаю, чтобы были разные контексты, в которых они означают разные вещи:
В контексте построения время жизни и существования начинаются с начала конструктора. Вне этого контекста они начинаются, когда заканчивается конструктор.
В контексте разрушения время жизни и существование заканчиваются, когда деструктор заканчивается. Вне этого контекста они заканчиваются, когда начинается разрушение.
Таким образом, объект может ссылаться на своих членов во время построения и потенциально передавать себя на функции других объектов, которые могут ссылаться на объект и его членов, и так далее. Но в целом объекты (экземпляры классов) могут не ссылаться (без создания поведения undefined) до тех пор, пока не закончится один из их конструкторов.
И деструктор объекта может ссылаться на свои собственные члены и вызывать функции других (существующих) объектов, которые могут ссылаться на уничтожаемый объект и/или его членов. Но, вообще говоря, объект не может ссылаться после запуска деструктора.
Такое многоконтекстное определение имеет для меня наибольший смысл, но я могу видеть, что аргументы в том, что объект должен считаться живым с момента, когда память выделяется для него до момента освобождения памяти, и я бы сказал, что память для мелкой копии должна быть выделена для объекта, когда один из его конструкторов запускается и освобождается, когда заканчивается его деструктор.