Es wird immer auf dem Anwendungsfall ankommen.
Sicher.
Wenn es normal ist das z.B. 1 Stunde auf einen Datensatz gearbeitet wird, wird man sich keine Freude machen, wenn der User erst nach 1 Stunde mitbekommt das seine Arbeit "für die Katz ist".
Genauso wird der zweite Benutzer vielleicht knatschig, weil er seine Mini-Änderung eine Stunde lang nicht unterbringen kann. Wenn dieser andere Client eine Applikation ist, die nur ein eh automatisch verwaltetes Statusfeld aktualisieren will, kann das schon erhebliche Auswirkungen auf den Betriebsablauf haben.
Richtig spanned wird es dann, wenn zu dem Datensatz noch etliche abhängige Datensätze gehören, die womöglich noch alle mit gesperrt werden müssen.
Ein Mergen der Änderungen wird für die meisten Nutzer zu komplex sein um Sie praktikabel zu Nutzen.
Da stimme ich dir zu. Aus meiner Erfahrung sind aber in der Regel nur nicht-relevante Felder betroffen, da die Sachbearbeiter meistens nicht-überlappende Daten ändern. Hier kann man durch anwendungsspezifisches Setzen der
ProviderFlags für jedes Feld schon einen Großteil der Kollisionen vermeiden. Das erfordert natürlich ein umfassendes Wissen über die Beziehungen der einzelne Felder untereinander. In der Praxis kommen dann echte Kollisionen kaum noch vor.