Se esiste un file di licenza, è piuttosto naturale presumere che si applichi alla cartella (e alle sue sottocartelle), così puoi avere una licenza in ogni cartella del sottoprogetto e tutto va bene.
Oltre a questo, potresti avere la licenza in ogni file e quindi anche cambiare tra le licenze in base al file.
Oltre a ciò, vorrei sottolineare che potresti anche avere un repository per ogni progetto e poi aggiungerli come sottomoduli al progetto "convenience" (personalmente lo trovo più conveniente, perché ho anche la possibilità di clonare solo la parte che mi interessa).
Infine, se si tratta di praticità, non esagerare. Soprattutto cerca di evitare varianti. Quando vedo un progetto, dove vedo chiaramente "questa parte è GPL, quella parte è MIT", allora è accettabile. Ma se dovessi avere a che fare con una giungla di licenze e varianti personalizzate, probabilmente andrò a cercare qualche altro posto o semplicemente scriverò la parte di cui ho bisogno. I programmatori amano reinventare la ruota. Non dare loro scuse per farlo;)