I think the commands would be a bit clearer if you made the first command
git checkout bar
or even better, the middle command
git checkout baz.c
The first and last command are about checking out into the working the source tree as state at a certain label or branch. This way it is clear that that the middle command is the special one, checking out (now) file baz.c with the state as it is in HEAD. And that's a very convenient special case.
Maybe a better name could have been found for it though, that's quite true. The way I see it, everything is recorded in the index, and checkout allows you to get to a certain state as recorded in the index, even if that state is fetched from a remote location.