Да, очень кривой пример или вы не до конца все показали. По сути свойство address хранит объект (а точнее ссылку на объект) и если просто сделать клон объекта person, то и клон будет ссылаться на объект адрес и если один объект person что-то сделает со своим объектом ($this->address) изменит часть данных, то и клон тоже обновит свой ($this->address) - вернее они ссылаются на один объект.
Другими словами с какой-то там версии PHP на объекты лишь ссылаются и объект удаляется из памяти, когда на него никто больше не ссылается.
Пример: сим ссылки в ФС (ярлыки), на один файл можно много ссылок сделать, но если хоть по одной ссылке кто-то изменит данные файла, то и все сим ссылки обновят контент. Поэтому если вам нужно будет изменять файл, то вы не делаете ссылку, а копируете. Тут тоже самое, если адрес могут изменить, то лучше сделать и клон объекта с адресом
Живой пример если не сделать клон объекта адреса:
$person = new Person();
$person->address->a = 1;
$personClone = clone $person;
$person->address->a = 2; // обновляем через первый объект person
echo $personClone->address->a; // 2 - клон тоже обновил, так как они ссылают на один объект