A mio parere, i moduli sono autorizzati a formulare ipotesi se sono esplicitamente documentati nella documentazione del modulo / descrizione del metodo.
Questo è un concetto importante di Design per contratto . Definisci i contratti tra i diversi moduli per stabilire la responsabilità di ciascuno di essi.
Nel tuo caso, potresti decidere che tutte le convalide sono responsabilità del tuo modulo. In tal caso tutti gli altri moduli possono invocare i tuoi senza un controllo precedente. Ma anche la notte decidi che il tuo modulo è molto semplice e supponi che la data debba essere verificata in un altro modulo, nel qual caso puoi fare l'ipotesi che la data sia valida. Tuttavia, è necessario specificare nella documentazione che il comportamento imprevisto (eccezione, risultato errato) potrebbe verificarsi se la data non è valida.
Alla fine, si tratta solo di distribuire le responsabilità nei moduli della domanda e garantire che tutti i moduli rispettino i loro contratti.