No sé de dónde viene, pero es un buen consejo y bastante sencillo de entender.
Cualquier programa diseñado de manera sensata se dividirá en varias partes, combinadas y compuestas de varias maneras. Cuanto más difícil sea razonar sobre lo que hace una parte en particular, más difícil será asegurarse de que su programa reaccionará de manera predecible.
Aislar las partes que producen efectos secundarios hace que el resto sea más fácil de razonar, probar y depurar. Reducir el número de efectos secundarios en cada parte que genera un efecto secundario hará que esa parte sea más fácil de trabajar de la misma manera.
Si lo descompone aún más, un valor de retorno es un efecto. Los efectos secundarios son un efecto. Una función solo debería producir 1 efecto (si es posible) porque cuanto mayor sea el número de entradas y efectos que tenga una función, mayor será la dificultad de razonar sobre lo que realmente hace.