Кстати, использование функции и различных типов данных в вашем примере не имеет значения. Вот более простой пример:
ие:
def f () = {
(1, "two", 3.0)
}
Почему нормально
var (x, y, z) = f()
но нет
var i = 0
var j = "hello"
var k = 0.0
// use i, j, k
...
//then
(i, j, k) = f() // ; expected but = found
?