¿Por qué Kotlin usa el modificador del operador fuera de la sobrecarga del operador?

Estoy un poco confundido sobre el uso del modificador de operator en Kotlin. Por ejemplo, Kotlin usa modificador de operator durante la statement de desestructuración y delegación de properties que, en mi humilde opinión (perdón por mi ignorancia), es un poco confuso ya que ambos escenarios están fuera de la sobrecarga del operador.

Destructuring:

 operator fun <K, V> Map<K, V>.iterator(): Iterator<Map.Entry<K, V>> = entrySet().iterator() operator fun <K, V> Map.Entry<K, V>.component1() = getKey() operator fun <K, V> Map.Entry<K, V>.component2() = getValue() for ((key, value) in map) { // ... } 

Delegación de properties:

 interface ReadOnlyProperty<in R, out T> { operator fun getValue(thisRef: R, property: KProperty<*>): T } interface ReadWriteProperty<in R, T> { operator fun getValue(thisRef: R, property: KProperty<*>): T operator fun setValue(thisRef: R, property: KProperty<*>, value: T) }