HAVING SEEN HER je zde správně. Participium přebírá čas a osobu hlavní věty. SEEING HER by tedy byl přítomný čas. Protože ji vidím… nejsem překvapený. To ale není správně. Nejsem překvapený, protože jsem ji VIDĚL. Proto HAVING SEEN HER.
Rozdíl mezi SEEING / HAVING SEEN nemá nic moc dočinění s dokonavými časy (předpřítomným ani předminulým). HAVING + past participle prostě říká, že děj participia proběhl před dějem hlavní věty.
Díky moc za vysvětlení.