Die Funktion bietet gegenüber einer generischen Lösung keinen echten Vorteil, sondern auf jeden Fall diesen beschriebenen Nachteil mit dem Überschreiben.
Kleiner Nachtrag: Der Vorteil ist, dass der Code eine Zeile hat, anstatt ca. 20 Zeilen bei einer eigenen Funktion. Somit steigt die Gefahr, dass derProgrammierer eine Sicherheitslücke einprogrammiert, um den Faktor 20. Da beim Einzeiler praktisch kein Fehler möglich ist, steigt ie Fehlerquote sogar ins unendliche.
Und selbst wenn ich das Überschreiben verhindern will, wird es mit muf() nur ein Zweizeiler, denn ein file_exists ist doch ein klein wenig weniger Code als die Lösung von dir,die im Übrigen das gleiche Problem bietet, was du anprangerst, da in der Zeit zwischen fopen und flock die Datei von einem anderen Script manipuliert, gelöscht, verschoben, geändert oder sonst was werden kann.
Somit löst dein Ansatz in keinster Weise dein Problem (was IMO keins ist) sondern vergrössert lediglich den Ressourcenverbrauch und die Codelänge, dafür verlängert sich auch die Verarbeitungsgeschwindigkeit.
Somit hat deine Lösung als _keine_ Vorteile aber _sehr viele gravierende_ Nachteile.
Für mich heisst das, ich bleibe bei meiner Funktion, denn bevor ich nach deinem Plan das Rad neu erfinde und hab dann hinterher ein Ei an der Achse, nutze ich lieber das Rad vom PHP-Hersteller, das nachweislich einen sauberen Geradeauslauf hat.