As of PHP5, not the whole object structure is copied when using an object as method param.
"As of PHP5, an object variable doesn't contain the object itself as value anymore. It only contains an object identifier which allows object accessors to find the actual object"
Its just creating a new object identifier (without recreating the object) of you pass an object in a method.
This is quite the same way as java does it. Considering that "passing by reference" in the PHP4 way isn't brought into PHP as standard behaviour but more as an add on and considering that I got sometimes bus errors with different PHP compilations I think its worth not to use references any more for objects.
As for the array passing I agree, this looks like still like the best solution since arrays are not objects. But for objects, I think removing references are fine.
Looking in Log4PHP I cannot find much array-reference passings. Speaking of bus errors, they occured only with objects, not on arrays.
Thanks for having a look at this too!