Na klar, dashier wäre dann eher suboptimal
Result := Parent.ClientRect.Contains(BoundsRect) and Assigned(Parent);
Oder etwas flacher formuliert:
Wenn rechts was steht, was scheitern kann, dann muss links davon was stehen, dass sicherstellt, dass das zum Scheitern verurteilte nie erreicht wird.
Oder aber auch: Assigned steht zuerst, wenn das ok ist, kann man rechts davon problemlos auf das per Assigned geprüfte zugreifen. Scheitert Assigned, kommt man dort erst garnicht an.