В справочнике сказано, что например CHAR(8) - это будет 8 байт, но ведь utf-8 вроде бы 1 символ занимает больше чем 1 байт, значит ли это, что CHAR(8), например может занимать 16 байт?
Да, влияет. При выборе кодировки utf8 под каждый символ отводится 3 байта. Этого достаточно только для нулевой плоскости юникода (коды 0x0000-0xFFFF). Для поддержки современного юникода в MySQL был добавлена кодировка utf8mb4, в которой под каждый символ отводится 4 байта. Потому CHAR(8) обычно занимает либо 8, либо 24, либо 32 байта.