C'e` una cosa che non capisco su come funzionano i moduli e la funzione "require". Ho letto
qui 
e recepito gli argomenti trattati, pero` da quel che ho capito i moduli vivono in ambienti separati, comunicando tramite le esportazioni nell'oggetto module.exports. Invece - forse e` una particolarita` di quello "principale" che viene dato in pasto a node.exe - se nel modulo principale creo un oggetto con require, sul tipo di fs = require ('fs'), poi includo un modulo mio (non-core), quell'oggetto fs mi risulta disponibile anche nel mio modulo, cioe` non mi da` errore se nel mio modulo uso fs senza il corrispondente require.
E` normale?

Succede solo con gli oggetti del modulo principale o con quelli di tutti i moduli?