Der Nachteil ist, dass wenn man mal TBlaResult erweitert und vergisst das hier anzupassen, man undefinierte Inhalte bekommt.
Das bringt mich jedes mal wieder zum Weinen. Wie schwierig könnte es wohl sein den Compiler zu ertüchtigen dass hier nicht initialisierte Werte im Spiel sind? Anscheinend ist das Raketenwissenschaft. Aus diesem Grund scheidet a) eigentlich aus.
Gegen c) spricht nichts - Ich bin kein Compiler-Experte, ich würde einem vernünftigem Compiler zutrauen die eigentlich überflüssigen Zuweisungen wegzuoptimieren.
PS: Abgesehen davon dass ich, wie bereits vorgeschlagen, dem Record unbedingt eine Default-Methode verpassen würde.