I have to say, this seems straightforward to me. An array with N elements gets N rows in the result set. I'm curious what other behavior would be more reasonable.
I can understand the likely reasoning behind the behavior but perhaps a note in the documentation about it might be of use for others that may get bit by this functionality. (especially given the structure of the query, had I been doing select * from unnest(arr) that would be more intuitive, but given the query structure of select with no where the results can be surprising.)