Beim Exportieren eines neuen Objekts über require.js: Erzeugt es tatsächlich ein „neues“ Objekt oder gibt es nur eine vorhandene Instanz zurück

Nehmen wir an, ich habe Module A, B und C in require.js. Modul Ein neues Objekt exportieren.

define(function() {

    // constructor
    function F() {
        this.prop = 'some';
    }

    // module exports
    return new F();   

});

Die Module B und C importieren die Instanz von F () von A:

define(['A'], function(f_inst) {
    // code
});

Aus irgendeinem Grund muss F Singleton sein. Ich habe kein ernsthaftes Verständnis dafür, wie require.js funktioniert. Das ist also meine Frage: Muss ich in diesem Fall Singleton-Muster für F () verwenden?