Is `a? .Let {}?: Execute {}` idiomática no Kotlin?

Vi o seguinte comentário em um S.O. postar, e estou intrigado:

Por que você não usa se para verificações nulas?a?.let{} ?: run{} é apropriado apenas em casos raros, caso contrário, não é idiomático #: 211 vodd melhor maneira de verificar nulo no kotli

Por que essa construção "é apropriada apenas em casos raros"?
O engenheiro chefe da Kotlin di

run permite que você use várias instruções no lado direito de um operador elvishttps: //stackoverflow.com/a/51241983/665601

apesar de eu admitir que não é realmente endossá-lo como idiomático. Ambas as postagens parecem ser de S.O. muito bem respeitado. Contribuidores da Kotlin.
A postagem que inspirou o comentário original menciona que olet parte da expressão é importante sea é mutável. Nesse caso, você precisará dea?.let{} ?: run{} ao invés deif{} else {}.

Acho que gosto da construção "deixe Elvis correr". Devo evitá-lo na maioria das c, ases?
Obrigado por qualquer insight.

questionAnswers(2)

yourAnswerToTheQuestion