Null не имеет деклараций о разрушении. Если вы хотите, чтобы значение null разрушалось, как если бы это была пара нулей, вы можете добавить следующие расширения:
operator fun <T> Pair<T, *>?.component1() = this?.component1()
operator fun <T> Pair<*, T>?.component2() = this?.component2()
В противном случае, как показывает другой ответ, вам нужно указать значение по умолчанию с помощью оператора Elvis.
Это не автомат c, потому что он не знает, чего вы хотите. В зависимости от того, что вы делаете с ним, 0 to 0
может быть наиболее подходящим, или может быть -1 to -1
или 0 to null
или null to null
.