в решении учителя, в случае если нода имеет тип не директория, то возвращаетс...

в решении учителя, в случае если нода имеет тип не директория, то возвращается исходный массив после применения функции к ней. почему не используется дистракчеринг? в примере у нас функция сама это делает и потому получается иммутабельный. но если функция этого бы не делала (а по условиям задачи не сказано, что нам будет приходить такая функция, которая возвращает новый массив а не измененный старый), то получается функция становится мутабельной. или есть правило, что в функцию обходчик надо подавать иммутабельный функции только? 

по хорошему вы правы. для полной иммутабельности надо бы копировать.