Потому что это параметр, он опеделяется в скобках при вызове метода:

Код:
updateReference(obj2);
именно для того, чтобы внутри тела метода мы бы могли его прочитать. Поэтому оно опять тут снова.
Но откройте секрет, для чего же может понадобиться внесение таких недоразумений, как написали вы:

Код:
private function updateReference(obj2:Object):void {
trace(obj1);//b2
obj2 = obj1;
trace(obj2);//b3
}
, то есть, в первой части тела мы читаем одно значение obj2, а во второй части (если бы все происходило именно так как вы задумали) мы вообще теряем к нему доступ, то есть не сможем узнать чего передали в скопки при вызове метода, если не приложим дополнительных усилий для его сохранения оного в другой переменной?

Это что, давняя привычка Штирлица уничтожать за собой все следы, от которой он не мог избавиться, и которая его постоянно я ставила его на грань провала?
