Хедеры в C/C++ — отдельные папки или вместе с исходниками? Подключать c путями или нет? Системные или обычные?
Я храню каждый программный модуль в отдельной папке. и хедер лежит рядом с реализацией. В свойствах проекта задаются пути ко всем папкам. Это дает возможжность перносить модули, и при этом не править вдруг пути для инклудов, если один модуль зависит от другого.
1.Хранят хидеры в отдельных папках в том случае, если это библиотека и нужно некоторый набор хидеров дать конечному пользователю. При этом внутренние хидеры могут лежать (и лежат) вместе с исходниками.
2. и 3. вообще без разницы. 
Организация проекта у меня такая же как у вас. Работает нормально. Не вижу смысла что-то менять в этом плане.