return не выводит данные никуда, он возвращает значение функции. Да, таким способом можно возвращать массив, ничего плохого нет. В современных версиях PHP можно массивы записывать короче:
return ['str' => $result[0], 'gor' => $result[1]];
Дополню ответ тем, что возвращаемое значение из функции можно/нужно присваивать переменной, чтобы с этим значением дальше работать, например: $array = geo($city)