Начнем с того, что изначально все было не так, как

Начнем с того, что изначально все было не так, как надо. А если рассматривать предложенный вариант, то здесь не просто a+a+b; Здесь вот так:

$a; $b;
$c = $a;
$a = $c + $b;

Это не очевидно, но по сути примерно это и происходит, так как исходному массиву выполняется полное присвоение всех элементов. В случае же перебора имеющиеся уже объекты вообще никак не затрагиваются (только перетираются те, которые должны перетереться).