Estimado Pequeño Saltamontes:
¿Y tú que piensas?
Técnicamente devolver un array o un objeto es casi lo mismo, ambos serían contenedores de información que pasan de una capa a otra.
Si lo haces con un array de datos, no veo nada para excomulgarte. Podrías tener un "array asociativo" (o hash) y pasarlo a un sistema de templates (con el producto que quieras o con simple php) y sería muy práctico.
Pero ahora la parte conceptual, si estás trabajando objetos en todo tu sistema, y quieres tratar de ser consistente y buscar que sea 100% POO, por qué en vez de pasar un array no pasas un objeto? A menos que tu sistema de templates no soporte eso (que lo dudo) sería la opción más coherente.
Si necesitas varios arrays para recorrerlos secuencialmente, puedes tener un
"objeto parámetro" donde tus atributos son a su vez arrays.
Pero en resumen, no creo que ninguna opción esté mal, intenta usar objetos y si se te complica según tu contexto, usa arrays, pero ambos son las dos herramientas contenedoras de elementos que dispones.
Y si ves funciones u objetos que extraen datos de una base de datos verás que siempre están las dos opciones, un array con hash (donde cada clave corresponde con un campo) y un objeto (donde cada atributo corresponde con un campo), pero en el último caso si hay varias tuplas tendrá que haber un array para representarlas.
No hay otra, esas son las dos herramientas, array u objetos, o ambas