Nein, eine leere Textdatei muß nicht zwingend ein BOM haben.
Außer man Speicher einen leeren String mit BOM in einer Datei, dann kann/muß auch natürlich auch nur der BOM in der Datei drin stehen.
Du gibst ein Encoding vor (zweiter Parameter), also darf da nur bei einem "falschen" Encoding der EEncodingError kommen,
denn es wäre doch auch korrekt, wenn die Datei eben ohne BOM erstellt wurde.
Denn es ist das "Default" encoding, welches genommen wird, wenn kein BOM vorhanden ist.
Anders wäre es, wenn dieser Parameter ein "Check" wäre und auf ein bestimmtes Encoding prüft. (für TXT ist in Windows nunmal die aktuelle CodePage das Default, also
ANSI)
Mach mal eine Meldung ans
QC
und hoffe dieser 7-8 Jahre alte Bug wird dann schnell behoben.