I would return a tuple, corresponding to the input arrays.

My impression is that obrientransform hasn't been used much by anyone. Some function only get used once they are cleaned up and get a good docstring.

If I read your example line [27] correctly, this is actually backwards compatible w.r.t tuple unpacking, or using a function that calls asarray afterwards. So the change would be in the return type (tuple versus array), and not the interpretation of the results, like transposing.