Хм.. А каким образом сохраняется контекст в переменную?
Как происходит запоминание увеличенного значения?
Разве это не одно и тоже:
makeCounter()();
let counter = makeCounter();
counter()
Мы же для переменно присвоили ссылку на функцию, только внутреннюю. И когда вызываем counter(), то происходит по сути одно и тоже, если бы мы вызывали makeCounter()() - counter()().
В чем тут может быть отличие?