¿Por qué obtengo el valor "resultado" para este cierre?

Digamos que tengo este código (violín) destinado a memorizar módulos:

var chat = {
 // Create this closure to contain the cached modules
 module: function() {
    // Internal module cache.
    var modules = {};
     console.log('in module:', name);  // <---------- "in return: result"     
    // Create a new module reference scaffold or load an
    // existing module.
    return function(name) {
      console.log('in return:', name); // <---------- "in return: derp"
      // If this module has already been created, return it.
      if (modules[name]) {
        return modules[name];
      }

      // Create a module and save it under this name
      return modules[name] = { Views: {} };
    };
  }()
};

chat.module("derp");

En ninguna parte del código se menciona siquiera la frase "resultado". ¿Por qué devolvería ese valor en el primer registro de la consola?

Además, ¿cómo obtiene la función de retorno el valor para elname parámetro cuando no se especifica en elmodule: function() {} ¿declaración?

Respuestas a la pregunta(3)

Su respuesta a la pregunta