简单地说,这应该首先理解为经典语法只是在“表面上”的”简单“的归纳,使其经常不具有普遍性。
所谓"浊辅音在词尾或在词干中清辅音之前的时候清化"中的前提并不精确,已经被强化。实际上,这种清化的条件是“在语素末或者语素中的清辅音之前".
在das Mittagessen中,Mittagessen应该视为由两个语素构成的复合词,即Mittag ('noon, midday') 和Essen ('food, meal'),因此Mittagessen内部存在语素边界Mittag-essen,g处于Mittag-语素末。因此g应该被清化。
同理,Abendessen应该视为由Abend ('evening, eve')和Essen两个语素构成的复合词,即Abend-essen,d处于Abend-语素末。因此d应该被清化。
在德语中,不仅粘着语素(包括构词语素(如英语的-er, -ful)和屈折语素(如英语的表示复数语法意义的-s)),自由语素也可以非常自由地相互”粘着"而构成复合词。德语是屈折语,但是相比英语存在更明显的黏着语的特征:形式地,如果将某个词(例如意义中心词)看成”词根“,其他”修饰词“看成”黏着语素“,那么德语具有高度的黏着语的特征。
而德语中很多的表层语音归纳难以单单从语音角度得到正确的条件,必须参考语素。你的问题正是一例,其他例子有Frauchen ('mistress‘) vs. rauchen ('to smoke')中ch的发音。两个ch都在相同的元音后,相同的原音前,但发音不一样:Frauchen的ch发清硬腭擦音,rauchen的ch发清小舌擦音。这表面看起来难以理解或归纳,但是分析语素边界后,规则其实相当简单:Frauchen是复合词,由词根Frau ('woman, female, lady)加上表示'little, small'的构词后缀-chen,即Frau-chen,ch在语素的起首,而rauchen也是复合词,由词根rauch ('smoke') 加上表示动词的构词后缀'-en',ch在语素的结尾。换句话说,两个发音不同的ch虽然处于相同语音环境,语素环境并不一样,考虑语素边界才能得到正确条件。
从生成语法的角度看,这个现象其实是不考虑语素边界时对表层的语音现象的归纳经常缺乏普遍解释能力。倘若在某些方言中Mittagessen的g和Abendessen的d发浊音,这种情况才应该视为”反常“,也许可以用表层的音系后规则的差异解释。