I was more thinking about the combination of caller provided object and callee returning a pointer (in this case to the same object).
But I suppose it decouples "call time" resources from "return time" resources (the current api does not guarantee that the result will be in caller's "out", just that a buffer will be returned that the caller owns and have to de-allocate/manage).