Потому что аргумент функции a создает новую ссылку на внешний a. Обе a ссылаются на один и тот же объект. Ты присвоил свойство этому объекту, а потом обнулил a = null
. Но обнулил лишь локальную ссылку, но объект все еще остался в памяти во внешнем a.