Я бы сказал, что это действительно для проблем с читабельностью; если кто-то использует оценку короткого замыкания не совсем очевидным образом, сопровождающему может быть сложно взглянуть на тот же код и понять логику.
Если память служит, erlang предоставляет две конструкции, стандартную и / или, затем andalso / orelse. Это уточняет намерение, что «да, я знаю, что это короткое замыкание, и вы тоже должны», где, как и в других точках, намерение должно быть получено из кода.
Например, скажем, сопровождающий встречает следующие строки:
if(user.inDatabase() || user.insertInDatabase())
user.DoCoolStuff();
Требуется несколько секунд, чтобы понять, что намерение таково: «если пользователь отсутствует в базе данных, вставьте его / ее / ее; если это работает, делайте классные вещи».
Как уже отмечали другие, это действительно актуально только при выполнении действий с побочными эффектами.