Junio C Hamano [off-list ref] writes:
But the last one has no chance of working if you think about it, because
"git branch foo $start" is a way to start a branch at $start and you need
to have something to point at with refs/heads/foo.
... which brings us back to your earlier point ...
quoted
I like your patch better than trying to pass around "0{40}", but:
which is why my conclusion was that "checkout -b" is shifting the
confusion around to different parts.
So we are breaking the equivalence between these three only when HEAD
points at an unborn branch.