Jeff King [off-list ref] writes:
2. When leaving the detached state, notice that we have commits not
contained in any other ref and pop up an "are you sure you want to
lose these commits" dialog, with an option to create a branch. This
is something we considered and rejected for the CLI, but I wonder
if it makes more sense for git-gui.
Hmm, I don't recall the discussion on this for the CLI, but it intuitively
feels like a good thing to do, unless it incurs an unacceptable cost.
Temporarily detaching HEAD by scripts like rebase and am that know what
they are doing should never have to pay the penalty, but an expert user
who worked interactively on the detached HEAD can be made to wait for 0.2
second more.
Your 1 and 3 both sound like sensible things to do, but I am not a good
judge on them as I rarely if ever work in GUI.