Selbst die Integer-Variable wird auf 0 gesetzt.
Auf keinen Fall - in Delphi 12 führt Finalize direkt zu einem Aufruf von _FinalizeRecord und die Routine behandelt nur managed typekinds.
Ich habe die im Rahmen von
https://quality.embarcadero.com/browse/RSP-35078 selbst refactored, deshalb weiß ich das sehr genau. Das Verhalten war vorher auch schon genauso.