ネストした関数について質問です。

function F1(S1: string): string;

function F2: string;
begin
F2 := ''; //a行
Result{Result A} := Result{Result B} + 'K.';
end;

begin
Result := 'O.';
Result := F2;
end;

というルーチンを書くと、F1の戻り値は'K.'になりました。
a行を削除すると、F1の戻り値は'O.K.'になりました。
ここで、Result AとResult Bは、それぞれF1、F2何れの戻り値を表すのでしょうか?
私見では、Result AはF2とみなしてよいのでしょうが、
a行削除の前後でResult Bは入れ替わっているとしか考えられないような気がするのですが・・・。
どなたか、よろしくお願いします。