На мой взгляд, вариант 1 предпочтительнее.
Вариант 2 звучит немного специфично для VC, и я не уверен, что так поступил бы.
Наихудший вариант «обоняния» - это вариант 3, по крайней мере, так, как вы его представили.
Прежде чем принять решение, вы должны подумать, какую систему контроля версий вы используете. Некоторые позволяют отображать отдельный файл в хранилище в несколько разных мест на жестком диске. Мы используем эту технику для реализации «контракта» (интерфейса) между системой Linux и нашим основным приложением Windows.
Таким образом, все проекты vc имеют «копию в самом проекте», но источником каждой копии является отдельный файл в хранилище.