В корне не правы.
Все переменные создаются в куче, на стеке ничего не создаётся. Вы запросили у среды таймер (через new) а потом результат, ссылку на него, положили к себе в локальную переменную. Когда выполнение функции завершилось локальные переменные были уничтожены. Т.к. вы отписались, а вы вроде отписались, то ссылок ни на таймер ни на анонимную функцию не осталось. И функция скорее всего была уничтожена. Но тикающий таймер тикает сам по себе и
не будет удалён пока тикает.
А вообще анонимные функции это зло. Используйте нормальные.