Na verdade vc está retornando uma tupla contendo dois valores. E a atribuição é uma forma de destructuring assignment, que pega os valores da tupla e coloca nas respectivas variáveis.
Então, tecnicamente falando vc continua retornando apenas um valor (a tupla), a sintaxe apenas te dá a impressão de estar retornando vários.