Есть ли обратная сторона этого? Просто компиляция займет больше времени?
Нет, не совсем. Это означает, что каждый раз, когда вы вносите изменения в любой заголовок, весь проект перекомпилируется. Но с другой стороны, поскольку он предварительно скомпилирован, в случае, когда вам нужно перекомпилировать, но не менять заголовки, может быть экономия.
Есть преимущество вставлять все ваши заголовки в файл pch, потому что это означает, что вы с меньшей вероятностью случайно пропустите заголовок. Иногда Objective-C компилирует вещи неправильно, если у него нет заголовочного файла, например если у вас есть два класса с методами, объявленными как:
-(void) doSomethingWith: (float) aNumber;
и
-(void) doSomethingWith: (double) aNumber;
без правильных заголовков, Objective-C может угадать неправильный doSomethingWith: и пропустить двойное число, где ожидается float, или наоборот.
Сказав все это, я никогда не беспокоюсь о пч. Я стараюсь импортировать заголовки только в файлы .m, где это возможно, и заранее объявляю классы в файлах заголовков.