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

Трудность тут в том что и та и другая могут возвращать булево. Я в своем коде такие случаю четко различаю. А вот кодер со стороны может не врубиться.

p.s. А вообще понятие побочного эффекта по большому счету и на процедуры должно распространяться.