Мне всегда казалось, что выходишь в идеале не за внешность человека, а за его душу. Тем более что Гарри вырос у Дурслей, которые казались благообразными членами общества, а на деле даже не стали хорошими опекунами собственному племяннику - для него, думаю, смотреть не на внешность человека, а на характер и поступки будет особенно актуальным.
Тогда тем более.
Характер Снейпа отвратительный, а Гарри он гнобил с самого знакомства.
Самая главная причина, почему Гарри Снейпа простил в эпилоге — его смерть.