Слушай, идея с deepMerge часто выглядит круто, но реально грязно — особенно когда по прототипу кто-то умудряется затащить данные. Это не баг одной функции, а системный косяк, который долго не всплывает, пока не бахнет где-то в другом месте. Особенно странно, что в коде всё вроде нормально, а на деле всё летит из-за такого мутного слияния. Лучше действительно контролировать поля явно, иначе потом эти сюрпризы очень больно бьют.