Имело дело с проектом в котором куча подпроектов внутри кот. по крайней мере файл main.cpp точно повторялся, но видимо это не тот случай?
Всё верно, для отдельных подпроектов создаются временные файлы внутри директории этого подпроекта и они не конфликтуют между собой. Автор напоролся на случай, когда в одном проекте:
SOURCES += \
Wicked/Dialog.cpp \
Resolver/Dialog.cpp \
Hammer/Dialog.cpp
То же самое с заголовочниками - QMake валит сгенерированные MOC-файлы из них в одну директорию без учёта пути. Если вы пытаетесь сейчас найти логику, что случай вырожденый и некорректный, то могу вас разочаровать, случай абсолютно нормальный. Просто QMake был написан и существует только для самой Qt, сами разработчики такие конструкции файлов не использовали, поэтому им больше и не нужно было. В общем случае если им нужна какая-то новая фича для себя в системе сборки - они её хардкодят в qmake, гибкости ноль.
Какие еще есть доводы в пользу cmake и отказа от qmake?
Из этой фразы я делаю вывод, что про CMake вы только слышали, иначе такого вопроса бы не возникло. Обязательно напишу статью на Wiki в ближайшее время.