En Delphi, ¿debo agregar unidades compartidas a mis proyectos, a un paquete compartido, o ninguno?

Esta pregunta es similar aést, pero no un duplicado porque estoy preguntando sobre cuestiones que no se discutieron en esa pregunta.

Tengo un proyecto cliente-servidor en Delphi 7 con la siguiente estructura de directorios:

\MyApp
  \MyClientApp
  \MyServerApp
  \lib

Hay 2 proyectos reales de Delphi (.dpr), cada uno en las carpetas MyClientApp y MyServerApp.

La carpeta lib tiene unidades .pas que tienen un código común para las aplicaciones de cliente y servidor. Lo que me pregunto es si debería incluir esos archivos .pas en los proyectos de cliente y servidor. ¿O debería crear un paquete en la carpeta lib que incluya esas unidades? ¿O debería dejar los archivos .pas en la carpeta lib y no agregarlos a ninguna aplicación / paquete?

¿Cuáles son las ventajas y desventajas de cada enfoque? ¿Qué camino es "mejor"? ¿Hay algún problema con la inclusión de esas unidades de la carpeta lib en más de un proyecto?

En este momento las unidades en la carpeta lib no son parte de ninguna aplicación / paquete. Una desventaja de esto es que cuando tengo mi aplicación cliente abierta en Delphi, por ejemplo, y quiero buscar algo en todos los archivos del proyecto, tampoco busca en las unidades de la carpeta lib. Lo soluciono abriendo esas unidades y haciendo una búsqueda en todos los archivos abiertos, o usando la búsqueda grep (pero preferiría una mejor solución).

También preferiría una solución en la que no tendré que ir y abrir un paquete separado y volver a compilarlo cuando realice cambios en esos archivos en la carpeta lib (¿es aquí donde debería usar un grupo de proyecto?).