Rendere modulare la propria applicazione, specialmente quando si raggiungono progetti di notevoli dimensioni, è sempre una buona scelta.

Secondo me, la soluzione ottimale da adottare dipende anche dalla tipologia di applicazione che si intende sviluppare o revisionare.

Nel caso di un programma gestionale, succede spesso che i clienti, non particolarmente "pratici" a livello informatico, vogliano utilizzare sempre lo stesso applicativo, unico e indivisibile, per eseguire le operazioni.

La suddivisione in diversi file eseguibili può essere utile, ma la sua efficacia dipende anche dal tipo di database al quale ti appoggi, alle politiche che vengono scelte per la suddivisione dei dati e la comunicazione interprocessuale tra i programmi;
ad esempio, si dovrebbe analizzare se intendi condividere la stessa connessione al DB tra tutti i i programmi, oppure consentire che ogni programma apra la propria connessione individuale.

Potresti considerare anche l'uso di una sola interfaccia principale, un solo programma, che carichi dinamicamente le interfacce secondarie, magari memorizzate e implementate in più DLL distinte, alle quali vengono passati i dati necessari per lavorare adeguatamente, come l'indirizzo di memoria dell'oggetto che rappresenta la connessione al database e altro ancora.