If my understanding is correct, advanced records are basically striped down classes. No object model, constructor, exception handling, etc. etc. So you must provide the functionality from scratch, mainly a constructor. Many times you don't need full blown classes, for instance, in an collection or a drawgrid, for example. If a record is all you need for the "contained" object, you are greatly optimizing the speed and size of the collection/grid.
This touches the "exe size" complaints too. You know, the one where C is better at making smaller compiled executables, yada yada. Sure, you CAN make smaller apps possibly, but that is assuming that you are a AAA+ rated C programmer. You still have to know how to set up the project in the C++ IDE for "bare metal" programming, I would assume. Of coarse C is technically the winner. But put an ace Lazarus programmer, who knows how to program "bare metal" vs. your average C programmer, and check size then. There is you reality check.
Same applies with Lazarus. The default settings are well thought out and set up for the "typical user", not to prove that it can go "bare metal". What advanced records throws into the mix is this...the concept of "bare metal OOP", where you can now build in OOP in a ground-up manner, providing only the OOP elements you need. So now the onus is no longer on Lazarus/Fpc's abilities, it is now solely the programmers OOP abilities.
Concerning Lazarus's advantage over Delphi in this regard is that we can look forward to seeing great improvements, very low in the object model, that will improve performance in the whole "object tree". I imagine it is just getting a handle on some good "best practices" techniques is all. You can improve the LCL in Lazarus, not so with Delphi.