Программисты - не аутисты. В той или иной степени приходится коммуницировать с коллегами и заказчиками. В случае работы по dedicated team регулярное общение с заказчиком становится нормой. Так что цель программистов - не просто писать код, а решать задачи и отнюдь не наедине с собой.
В let g помещается результат выполнения функции f, а именно функция g со ссылкой на value. Пока функция g жива и лежит в let g, живет и ее лексическое окружение в виде value. После переприсваивания значения let g ссылки на функцию g больше нет и она будет съедена сборщиком мусора, как и ее лексическое окружение в виде value.
Надеюсь, понятно объяснил.