Я предполагаю, что поскольку C - довольно старый язык, относящийся к 1972 году, это было сделано намеренно из-за ограничений памяти и скорости.
Как определено, компилятор должен выполнить одно сканирование вашего файла, чтобы узнать все, что нужно для компиляции.Необходимость сделать два прохода была бы более дорогой, и поэтому это правило сохранилось до наших дней.
Кроме того, как отметил peoro, это правило облегчает жизнь автора компилятора.Не говоря уже о том, что жизнь IDE для автозаполнения также облегчит ее жизнь.
Итак, небольшое раздражение для разработчиков программ означает, в частности, облегчение жизни создателей компиляторов и разработчиков IDE.и ваши программы будут компилироваться быстрее.Неплохо, когда у вас в руках многомиллионная кодовая база.