Думаю проще сказать что это обычная функция, чем документировать как детерминированную при таком-то списке условий. Это устраняет риск что список кто-то пропустит или поймёт неправильно. Второй кейс вообще не понял.
Вопрос возник из-за того, что я стал разбираться как люди изолируют эффекты, в частности я смотрел на концепцию functional core imperative shell.
Возьмем датомик. Бизнес логику можно записать как функцию, принимающую базу данных как значение, прочие параметры и возвращающую описание транзакций в виде данных.
Только датомик создает илюзию того, что база данных это значение. Если есть недостающие сегменты, то он лениво докачивает их по сети.