не панацея, если писать плохой код специально (!!, игнорирование платформерных типов), т.е. в котлине надо думать только о случаях, когда ты уверен, что оно не нулл.
в джаве же нужно наоборот всегда думать о том, чтобы тип был НЕ нулл, это кардинальная разница.
спор на уровне open by default / final by default. final лучше, потому что надо думать только в тех случаях, когда ты специально класс открытым делаешь.