¿por qué no seguir el ejemplo que viene en la ayuda de delphi?
Es decir, en el ejemplo de la ayuda de delphi, la última línea dice:
MyList.Free
no utilizan FreeAndNil....
Así que esto no debería darte problemas:
Código Delphi
[-]
...
miLista := TStringList.Create;
miLista.Add('uno');
miLista.Add('dos');
Result := miLista;
MiLista.Free;
...
Aunque me gusta más lo que propone Caro, digo, si ya tienes un stringlist, ¿para qué crear otro?