Лучше на уровне файловой системы и дерева каталогов разбираться что должно попадать в сборку, а что нет. Тогда и GLOB_RECURSE можно использовать не боясь.
Не вижу собственно ничего плохого в GLOB_*, это хорошая фича, но конечно и не стоит забывать что всё добавляется по маске, а то и рекурсивно.
Просто перечисляя файлы тоже есть минус – можно забыть включить в сборку то, что должно в ней быть.
Если разрабатывает команда, а не один ТС, вероятность появления неожиданных файлов увеличивается
За счёт чего? Типа остальные не дартаньяны даже в первом приближении?
ТС, если ты вдруг сам не нашёл:
Note: We do not recommend using GLOB to collect a list of source files from your source tree. If no CMakeLists.txt file changes when a source is added or removed then the generated build system cannot know when to ask CMake to regenerate
Решительно не вижу, из чего это следует. Шанс ошибиться, вероятно, меньше, так как один человек обычно держит в голове весь проект целиком, но отнюдь не нулевой