Jetzt aber mal im Ernst, verhalten sich nicht fast alle Programme genauso?
Also ich persönlich halte das Verhalten auch für logisch, aber ich bin da (wie wohl alle hier) vorbelastet. Grundsätzlich sollte gelten:
Don't surprise the user!, andererseits gilt aber auch:
Don't let the user design the program! - wie man an dem Vorschlag deines Kunden schmerzhaft ersehen kann.
Eventuell hilft es, dem Benutzer den Vorgang zu erklären. Eine Garantie dafür gibt es aber nicht.
Bekommt der Benutzer denn auch die Möglichkeit zum Abbrechen, wenn sich am Datensatz nichts geändert hat und sich somit die Frage nach Speichern oder Verwerfen gar nicht stellt?
Ja, da die Möglichkeit besteht beim Speichern eine Bemerkung zu hinterlegen warum man diesen Datensatz geöffnet hat. Möchte man diese Bemerkung eingeben so wird die Bemerkung im Speichervorgang abgefragt.
Dann wäre es vielleicht eine Möglichkeit, einen Dialog für alle diese Fälle zu machen und je nach Zustand die möglichen Optionen anzubieten. Wenn immer der gleiche Dialog (wenn auch mit kontextabhängigen Optionen) kommt, ist der Benutzer vielleicht nicht so verwirrt.