Requiere JS, Dependencias circulares y método "mágico" de exportaciones

He estado tratando de configurar RequireJS para manejar dependencias circulares usandoel módulo mágico especial 'exportaciones' según lo recomendado porLa respuesta de James Burke aesta pregunta.

Siguiendo el ejemplo dado por @jrburke en esa pregunta:

define("Employee", ["exports", "Company"], function(Company) {
    function Employee(name) {
        this.name = name;
        this.company = new Company.Company(name + "'s own company");
    };
    exports.Employee = Employee;
});
define("Company", ["exports", "Employee"], function(Employee) {
    function Company(name) {
        this.name = name;
        this.employees = [];
    };
    Company.prototype.addEmployee = function(name) {
        var employee = new Employee.Employee(name);
        this.employees.push(employee);
        employee.company = this;
    };
    exports.Company = Company;
});

jsfiddle

El problema es que usando su propio ejemplo, elexports el módulo no está definido y, por lo tanto,exports.Employee yexports.Company no establecer Si trato de incluir exportaciones como un argumento de las funciones de devolución de llamada definidas, simplemente se inicializa en ambos casos como vacío y no lleva las funciones de constructor que le fueron asignadas.

¿Qué estoy haciendo mal?

EDITAR: A través de prueba y error, obtuve el código anterior trabajando en:http://jsfiddle.net/jpk45vow/4/. ¿Alguien puede explicarpor qué funciona, porque no tiene sentido para mí.

Respuestas a la pregunta(1)

Su respuesta a la pregunta