I disagree. We shouldn't have to know how a branch or commit is stored. Whether git interally makes a new ref, copies everything to a new directory, or does some hashing magic doesn't matter to the user.
I agree that we end up needing to know about refs because of git's user interface, but I consider that a flaw or limitation.