Использование везде указателей ухудшает читаемость кода, потому что становится непонятно меняет ли что-то в объекте по этому указателю метод, куда этот объект передается. Если бы передавалось по значению, то точно объект оставался бы не тронутым.
С другой стороны копирование по стеку туда-сюда возможно менее эффективно, чем размещение объекта в куче. А возможно и более - это зависит от каждого конкретного случая.
Я лично ратую за читаемость.