It may also be useful for queries.
Instead of writing:

var aMale: TSQLBaby;
  aMale := TSQLBaby.CreateAndFillPrepare(Client,
    'Name LIKE ? AND Sex = ?',['A%',ord(sMale)]);
    while aMale.FillOne do

We may write:

var aMale: TSQLBaby;
    'Name LIKE ? AND Sex = ?',['A%',ord(sMale)]));
  while aMale.FillOne do

Without the need to write the try ... finally block.

See the TSQLRecord.AutoFree() overloaded methods in mORMot.pas for the several use cases, and the associated TAutoFree / IAutoFree types as defined in SynCommons.pas.
Note that you can handle several local variables in a single TSQLRecord.AutoFree() or TAutoFree.Create() initialization.

Be aware that it does not introduce some kind of magic garbage collector, as available in C# or Java. It is not even similar to the ARC memory model used by Apple and the Delphi NextGen compiler.
It is just some syntaxing sugar creating a local hidden IAutoFree interface, which would be released at the end of the local method, and also release all associated class instances.
So the local class instances should stay in the local scope, and should not be sent and stored in another process: in such cases, you may encounter access violation issues.

You may likely to take a look at the updated reference documentation.
Or discuss in our forum, as usual!