Как работает функция?
Ошибка из-за того, что внутри функция f вызывает себя рекурсивно. На момент вызова переменная f уже равна null, соответственно, её нельзя вызвать как функцию.
У вас рекурсии нет, поэтому нет и ошибки.
Про ячейки памяти лучше не думайте, работая с js, только запутаетесь.
Автор вызывает f в f
Т.к. при вызове g f - null - то ошибка
Если писать без вызова f - ошибки не будет)
Гоните нахрен этого автора