Сбор мусора обычно не означает «очистить какой-либо объект, если ничто иное не указывает на этот объект» (это подсчет ссылок).
Итак, в вашем примере после того, как a, b и c выходят из сферы действия, они могут быть собраны GC, так как вы больше не могут обращаться к этим объектам.
Вы на самом деле используете uirouter. Это гибридная версия, но все же это uirouter. Для эквивалента this.router.navigate вы можете использовать:
this.uirouter.stateService.go('items');