А ещё говорят раст с многопоточкой что-то там умеет доказывать
Смотри. Представь себе, что вся доступная тебе на запись память не алиасится (т.е. каждый доступная ссылка - уникальная область памяти, в том числе не доступна на чтение по альтернативным именам). Тогда ты можешь изменяемую часть состояния записать как input + output параметры чистой функции