Каждый модуль во время загрузки через require оборачивается в замыкание и в своем контексте модуль может создавать структуры, которые занимают память. Это не глобальный контекст, но он зацеплен за глобальный при помощи кеша require. То есть, все, что себе модуль навыделял - висит в памяти и не собираетсч gc, пока модуль специально не освободит.