Ich setze das Result immer gleich als aller erstes auf FALSE. Sonst passiert genau das, wie du beschreibst.
Getreu nach dem Motto: Am Anfang einer Function/Procedure alle Variablen initialisieren, d.h. einen Startwert geben.
Und dazu gehört auch das Result.
Mach ich genauso. Ich verlass mich nicht darauf, daß irgendeine Variable einen Default bereits hat.