Каковы бест практикс структуры каталогов и файлов программы в Windows?
Например тут: https://en.wikipedia.org/wiki/Directory_structure
Встречал похожий более подробный документ где-то на сайте микрософта, но сейчас не нашел.
Если кратко:
1.программу ставить в "Program Files" в соответствии с платформой. Внутренняя структура исполняемых файлов и библиотек - на ваше усмотрение. Если вы используете кучу динамических библиотек, то есть смысл разнести их по подкаталогам. Если у вам только небольшая кучка - могут лежать в одном каталоге. Это на самом деле не важно и никому не интересно.
2.Общие настройки программы, которые распространяются на всех пользователей: в реестр в HKLM и/или в ProgramData.
3.Пользовательские настройки программы: в реестр в HKCU и/или в AppData.
4.Пользовательские временные файлы: в %TEMP%
5.Файлы проектов или сохранения: в %USERPROFILE%\Documents
AppData - системная скрытая папка юзера. Используется прогами обычно только для темп файлов. 
ProgramFiles - обычная папка, созданная по умолчанию для установки программ. 
Темп файл лучше хранить в appdata - потом удалять. 

Остальное не подскажу, не разраб. Но мне как пользователю удобно когда файлы проги разбиты на подпапки. Типа - bin,music,data... а exe в корне