Das hängt immer von der Anwendung ab.
Share(Yes) kann sich selbst nicht blocken (Deadlock), allerdings entscheidet immer der 1. Open für alle folgenden.
Ausserdem kann ein Unterprogramm jederzeit den Dateizeiger verändern, was ggf. das übergeordnete Programm nicht erwartet.
Oder was ich auch schon erlebt habe:
Das Hauptprogramm liest für Update und irgendein Unterprogramm macht dann den Update mit zuvor aus einer anderen LF mit anderen Schlüsseln gelesenen Informationen.
Oder es verschiebt den Satzzeiger so dass das Hauptprogramm den falschen Satz updatet oder auf die Nase fällt, weil der Satz nicht zum Update gesperrt wurde.
Und, und, und...