речь не об объектах, это уже "усложненный" случай
допустим мы возвращаем массив объектов, и еще иногда нам нужно вернуть общее количество объектов (их больше, чем мы возвращаем). В php (в отличие от javascript) в массив дополнительную информацию добавить не получиться, это не объект. Нужно либо помещать наш массив в еще один массив, либо возвращать коллекцию (объект). С одной стороны, зачем нам возвращать объект, если можно массив. С другой, эта функция, очевидно, более общего плана (а не для конкретного специфического случая), не так уж и сложно объявить еще один класс (может это еще пригодится), так что можно и объект возвращать. Так что я теперь склоняюсь к тому, что красота спасет мир
p.s. по поводу
"я считаю использование аргумента-ссылки оправдано, когда функция должна изменять уже существующий объект" я подумал, что если функция должна изменять существующий объект, получаемый по ссылке, она должна быть его методом. По-крайней мере, контраргументы мне в голову пока не пришли, кроме "бывает, что функция не может быть методом объекта"