Existe algum motivo para definir module.exports usando um IIFE?

Minha equipe não possui desenvolvedores de JS experientes, mas estamos escrevendo uma biblioteca no Node e recebemos uma sugestão de um desenvolvedor de JS real de que "devemos tornar os js mais modulares - para não poluir o espaço para nome global e torná-lo mais legível aos recém-chegados "e nos disse para fazer o seguinte:

module.exports = (function(){
      return {
         nameToExpose: functionToExpose
         ...
    };
})();

ao invés de

module.exports.nameToExpose = functionToExpose;

Qual o sentido disso, se houver? Este último não faz nenhuma declaração local que teria o escopo definido pelo IIFE e, mesmo que fosse, seria local no arquivo do módulo e não global para todo o programa querequire()é isso.

Alguns usuários do Google pesquisando e cutucando este site não apresentam respostas a essa pergunta em particular, embora existam muitas outras explicações dos IIFEs que eu li (e que estão resumidas no comentário acima). Alguns testes certamente revelam que o últimonão realmente colocarfunctionToExpose no espaço para nome global, embora seu nome original esteja registrado no próprio tipo de função.

questionAnswers(2)

yourAnswerToTheQuestion