It makes sense that structrefs and arrayrefs are not allowed to be returned, considering that there is no dynamic allocation support and considering that local variables go out of scope when the function has been ran through. There's still possibilities to return arrayrefs. The passed parameter can be modified, and as such, the called constructs the array and passes it to the function to have it filled (but I assume you know of this already, oh well).
I recall it for now isn't possible to do so. But I can imagine that it will be implemented either now in the beta or when the patch is released on the retail game version.