Действительно, отступления от этой рекомендации справочника весьма многочисленны. Следует придерживаться дефисного написания первой части фамилий Мак-, в том случае если нет устойчивой традиции слитного написания (фиксация в заслуживающих доверия словарях, энциклопедиях, специализированной литературе и т. п.).
В русском языке компонент мак- не осмысляется как слово со своим самостоятельным значением, употребляется только в составе фамилий. Компонент мак- сливается с последующей частью фамилии в одно фонетическое слово. Оно может произноситься с одним ударением, а может с двумя — с основным и побочным, ослабленным, падающим на часть мак-.
Общего правила на этот счет нет, желательно уточнять в первоисточнике.
По общему правилу: Мак-Аллен.
Стоящий перед фамилией компонент Мак- в большинстве случаев присоединяется дефисом, однако из этого правила есть многочисленные исключения, обусловленные либо написанием в языке-источнике, либо сложившейся традицией употребления в русском языке; другими словами, написание в каждом случае индивидуально.
Если речь идет о шотландском короле XI века, о трагедии Шекспира, опере Верди, балете Молчанова, то ударение Макбет в образцовой литературной речи и сейчас признается ошибочным (поскольку, как Вы правильно пишете, приставка Мак- в шотландских фамилиях никогда не бывает ударной). Во всех этих случаях правильно говорить Макбет. И только в названии повести Н. Лескова сохраняется традиционный (прижившийся в русском, но ошибочный с точки зрения английского языка) вариант, правильно: «Леди Макбет Мценского уезда».
Откуда в русском языке появилось ударение Макбет? Один из крупнейших исследователей имен собственных А. В. Суперанская предполагает, что перенос ударения произошел под влиянием имени другого шекспировского героя – Гамлета. Ведь имя Гамлет изначально тоже произносилось с ударением на последнем слоге (под влиянием французской традиции). Позднее укоренилось привычное нам произношение Гамлет. «За компанию» с Гамлетом изменил место ударения и Макбет, но, в отличие от Гамлета, изменил с правильного на неправильное.