Если две программы тесно связаны, вы можете просто остаться в проекте, но создать новую ветвь для этого варианта (см. Руководство по SCM XCode4 ):
Вы бы оставались в той же локальной копии, но обновляли бы ваше локальное рабочее дерево, переключаясь с одной ветви на другую.
Это может быть проще, чем пытаться использовать подмодули в этом случае (если у вас много проектов, использующих один и тот же базовый код).