That would totally kill my workflow as a Fink developer, as it would delete all my local modifications without a trace. On the other hand, as a developer I should know how to deal with a failed merge...

On the other hand, for most normal users, there will be no local changes, and no local commits, and thus merging will always amount to fast-forward, and thus always succeed.

So, how about doing a "merge --only-ff"? This way, you don't get into a broken, half-merged state. Of course there still should be some error checks added, so that the user receives a useful error message, perhaps with a hint as to how to recover...