The use of arrays to implement multiple return values have several problems. You've already mentioned one. Another is that there's no good handling of variable number of arguments; it ought to work the same way as for function input. A third is that it's not very efficient (whether that matters or not depends on the circumstances of course). A fourth is that there's no difference between the return type array-of-something and multiple-return-values-of-something.
The last one could be handled by adding a tuple type, but it could also be handled by special forms for multiple return values, just as we already handle multiple arguments without a tuple type. Not that I'd mind a tuple type being added, but that'd have a much deeper impact on the type system than is necessary to solve this.