Olá Joaquim
No caso do método toList(), ele retorna uma nova lista imutável com os elementos da coleção original. No entanto, o tipo de dado retornado é List, ou seja, uma lista imutável. Portanto, ao fazer o cast para MutableCollection, você está tentando atribuir uma lista imutável a uma variável que espera uma coleção mutável.
O motivo pelo qual não ocorreu uma exceção é que o Kotlin permite o cast seguro (safe cast) quando o compilador consegue garantir que o cast é válido. Nesse caso, como a lista retornada pelo toList() é uma cópia imutável da coleção original, o compilador consegue inferir que não haverá nenhum problema ao atribuir essa lista a uma variável do tipo MutableCollection.
No entanto, é importante ressaltar que, mesmo que o cast tenha sido permitido, a lista continuará sendo imutável. Ou seja, você não poderá adicionar ou remover elementos dessa lista, mesmo que a variável seja do tipo MutableCollection. O cast apenas permitirá que você utilize os métodos da interface MutableCollection para acessar os elementos da lista.
Espero ter esclarecido sua dúvida! Se tiver mais alguma pergunta, estou à disposição. Bons estudos!