En mi opinion, es mejor hacer apps monolíticas. El tener funcionalidad regada complica las cosas, ya que es posible que APP1 espere un API y comportamiento con APP2 y esta sea mas o menos vieja.
Tener despliegues repetibles y confiables es mucho mejor que ahorrarse unos cuantos segundos en una descarga.
El problema que describes es de generar despliegues, no de organizacion de código. Eso se resuelve muy facil con un software de "builds automatizables".
El mas facil de todos, por mucho:
http://www.finalbuilder.com
(Que viene en versiones modernas de delphi).
Con eso, creas una automatizacion de como generar el proyecto, desde jalarlo desde el repositorio de codigo fuente (que seguro usas), compilarlo, generar documentacion, generar scripts de BD, comprimir, firmas digitales, subir a un FTP, mandar mail, etc (todo lo que se te ocurra, realmente).
Hacer builds automatizables es el 2do punto para lograr un proceso de calidad (el 1ero es tener un CVS).