Ты конечно можешь написать один огроменный файл main.cpp... Но во-первых, как ты будешь с ним работать? Файл из пары миллионов строк - такое себе дело. Во-вторых, любое изменение любой функции приведет к повторной компиляции всего огромного файлища. В то время как изменение функции в отдельном файле требует повторной компиляции только этого отдельного файла.