Typecast:
tatsächlich ist es so, dass ich bereits aus Programmen Typecasts herausgenommen habe, indem ich einmal den Typ bestimmt und anschließend einer Variable zugewiesen habe. Dadurch habe ich Sekunden(!) gewonnen. So ganz ohne Rechenaufwand kann das also nicht stattfinden. Diskutieren kann man allerdings darüber, ob ein Cast auf ein "array of byte" verglichen mit einem Cast auf eine Klasse tatsächlich vergleichbar sind.
Typecasts auf eine Klasse müssen mehr Rechenaufwand bedeuten, da sonst beim Cast einer unpassenden Referenz keine Ausnahme geworfen werden könnte. Irgendwo muss also eine Überprüfung stattfinden, ob die Referenz, die gecastet werden soll auch zu dem Zieltyp passt.
Bei Casts auf einen nicht-Klassen-Typ erfolgt keine Überprüfung.
Allerdings entspricht die Record-Methode weit eher der Typsicherheit, die ich an der Uni mal mit dem Ur-Pascal aufgenommen habe