почему идет обращение сразу к вложенной функции и игнорируется внешняя,
.
Не сразу.
let counter = makeCounter(); - Здесь в переменную counter присваивается
результат вызова
makeCounter() и результатом будет возвращённая функция:
return function() {
return count++; // есть доступ к внешней переменной "count"
};
Далее мы вызываем собственно
counter() (не забываем, что у него в теле лежит увеличение счётчика).