Collecting Parameter vs overloading addition
One benefit of a collecting parameter is writers can add multiple items to the list.  The collecting parameter can descend deeper into the stack and each method is free to add as many items to the list as necessary.

If what was added to the list was restricted to the return value of the method, then it becomes the sender's responsibility to know how to add the receiver's return values to the list, and the receiver cannot return another value other than what would have been added to it.

The collecting parameter seems more flexible because any number of receivers may write to it and still be able to return values.