I don't know the historical reasons for the difference but it's
explained in the second para of the man page:
When <paths> are given, this command does not switch branches. It
updates the named paths in the working tree from the index file
(i.e.
it runs git-checkout-index -f -u), or from a named commit.
So when you supply "." as a path it's not actually switching
branches. So that's why you see the different behaviour; it's
intentionally different. Like I said, I don't know the reasons why
but I imagine it's to make it easy to grab specific files from other
branches without actually switching.
Cheers,
Wincent
-