TStringList es una clase TObject, la variable no contiene la clase en sí, sino su referencia. Esto quiere decir que es un puntero a la dirección de memoria en la que se contiene ese objeto.
En esa función lo que haces es devolver el puntero a una dirección de memoria que contiene el objeto que tu has destruido en la misma función, por ello te salta el error. En todo caso, si deseas seguir con esa sintaxis debería ser así el código:
Código Delphi
[-]
function TForm1.GetStrings:TStrings;
var
miLista: TStrings;
begin
miLista := TStringList.Create;
miLista.Add('uno');
miLista.Add('dos');
Result := miLista;
end;
procedure TForm1.Button1Click(Sender: TObject);
var MiLista: TStrings;
begin
MiLista:= GetStrings;
memo1.Lines.Assign(MiLista);
FreeAndNil(MiLista);
end;