По крайней мере, x86 и ARM способны загружать и хранить байты в и из 32-битного регистра без каких-либо штрафов, так что на самом деле использование char не влияет на производительность. Я не совсем уверен, но готов поспорить, что в x86-64 тоже есть такие инструкции. (Конечно, x86 и x86-64 также могут обрабатывать 8-битные значения непосредственно в регистрах.).
Таким образом, единственное беспокойство может быть о расположении памяти. Конечно, компилятор выравнивает все, так что большую часть времени значения char в структурах дополняются, если только они не расположены рядом друг с другом, тогда вы можете сэкономить несколько байтов и получить немного лучшую производительность кэша. Если у вас есть огромные массивы BOOL, а память вызывает беспокойство, вам все равно следует их упаковать.
В любом случае, это не проблема. Почему бы вам не попробовать запустить программу, скомпилированную обоими способами, и посмотреть, есть ли какое-либо существенное влияние на производительность или использование памяти. Если вы обнаружите, что есть, вы можете купить себе пиво и притвориться, что оно у меня.