Я думаю, что отдельные версии отладки и выпуска необходимы, потому что вывод moc генерируется из пользовательского исходного кода. Таким образом, выходные данные moc могут отличаться между сборками отладки и выпуска, если предварительно обработанный источник класса отличается между отладкой и выпуском (например, сигнал, который существует только в сборке отладки).
Это не относится к сгенерированным uic файлам, потому что они сгенерированы из .ui XML, который не может варьироваться между конфигурациями отладки и выпуска.