Разделите глубину и обработку массивов
Поверхностный режим объединяет поля корневого объекта, но выбирает каждый совпавший вложенный объект целиком. Парные массивы всё равно заменяются, соединяются или сопоставляются по ключу. Глубокий режим обходит объекты рекурсивно; выбор стратегии массивов независим.