Is `a? .Let {}?: Run {}` idiomatic in Kotlin?

Vi el siguiente comentario en un S.O. publicar, y estoy intrigado:

¿por qué no usas si para cheques nulos? @a?.let{} ?: run{} solo es apropiado en casos raros, de lo contrario no es idiomático - voddan 15 de mayo de 16 a 7:29 La mejor manera de hacer un cheque nulo en Kotlin?

¿Por qué esa construcción "solo es apropiada en casos raros"?
El ingeniero principal de Kotlin dice:

run le permite usar múltiples declaraciones en el lado derecho de un operador de elvishttps: //stackoverflow.com/a/51241983/665601

aunque admito que en realidad no lo respalda como idiomático. Ambas publicaciones parecen ser de muy respetado S.O. Colaboradores de Kotlin.
a publicación que inspiró el comentario original menciona que lalet parte de la expresión es importante sia es mutable. En ese caso, necesitarása?.let{} ?: run{} en lugar deif{} else {}.

Me parece que me gusta la construcción "deja que Elvis corra". ¿Debo evitarlo en la mayoría de los c, ases?
Gracias por cualquier idea.

Respuestas a la pregunta(2)

Su respuesta a la pregunta