Даже если вы уберете self - вы каждый раз создете новую функцию, и это займет куда больше памяти.
Вы не о том переживаете. С одной стороны вам правильно сказали - не стоит беспокоиться о self, с другой - это не значит что беспокоиться вообще не стоит. И это не зависит от того как вы пишете код - с классами или без. в функциональном стиле можно легко памяти израсходовать в разы больше не заметив.
Если по сути примера - self у вас будет в замыкании, останется там висеть пока где-то есть живая ссылка на это замыкание, то есть пока где-то есть ссылка на функцию которую вы передаете в helper.method. как только сборщик мусора сможет это все собрать - память освободится. Если ссылки не умирают и вы вызываете эту функцию раз за разом - память закончится даже если вы уберете self вообще.
Тут важно убедиться что у вас нигде нет утечек памяти. Если код такой что должен работать долго, упорно и хорошо, например большие и сложные математические вычисления или важен реалтайм (чтобы сборщик мусора не ставил все внезапно на паузу) - то тут нужны специальные техники, чтобы по максимуму избежать создания любого нового объекта в памяти.
Читайте про сборщик мусора, как он работает и откуда берутся утечки памяти в node.