Возможно, вариант ещё не достаточно хороший, но давайте не будем сразу называть идею плохой, а будем рассматривать всесторонне. Переход к определению бывает разным. Не считая кросс-компиляции, исходные тексты не обязаны в каждый конкретный момент соответствовать символьным файлам, и не обязаны соответствовать загруженному коду. Мой стиль - это "живая разработка". В ходе живой разработки этот разрыв присутствует практически в любой момент времени, поэтому его нужно тщательно рассмотреть для принятия решения.

Если мы идём вашим путём, то мы должны всегда поддерживать файлы проекта в актуальном состоянии. Это означает, ни много, ни мало, а требование разрабатывать всегда "сверху вниз".

Нужно менять и средства разработки - не должно быть "просто файлов", всё должно жить в структуре проекта, должно быть "решение" и в нём "проекты", как в Visual Studio. Это серьёзное изменение и серьёзные ограничения.

Мой подход, как мне кажется, таким ограничением не связан.