In der `biblatex`-Anleitung findest Du, dass es zu einigen Datensätzen Untertypen gibt. Diese werden normalerweise über das Feld `type` ausgewählt, können aber in der Regel auch über spezielle Datensatzarten gewählt werden. Allerdings sind diese Datensatzarten dann nicht durch eigene Treiber realisiert, sondern Aliase für die Grundarten mit entsprechend gesetztem `type`. Daraus ergibt sich, dass man für solche Datensatz-Untertypen den Grundtyp ändern muss, also beispielsweise
\xpatchbibdriver{thesis}{\usebibmacro{finentry}}
{\nopunct\usebibmacro{date+extrayear}\nopunct\usebibmacro{finentry}}{}{}
verwenden müsste
müsste.
Unterscheidungen zwischen Untertypen müssen übrigens ggf. über Verzweigungen nach dem Feld `type` vorgenommen werden, also beispielsweise
\xpatchbibdriver{thesis}{\usebibmacro{finentry}}
{\nopunct\usebibmacro{date+extrayear}\iffieldequalstr{type}{phdthesis}{\nopunct}{}\usebibmacro{finentry}}{}{}
wenn der Punkt nur für `type`=`phdthesis` entfernt werden soll.