I think it looks like a flamewar, so for my benefit can you tell me what is the behavior: (I think I have it)
1) The docker index (public registry) lives at index.docker.io. If you push an image like "yebyen/foo" then you need to log in as "yebyen" and you're making yebyen/foo public.
2) The docker-registry project, when you deploy it, takes up port 8080 by default. If you push an image like "registry:8080/bar" or "my.registry/bar" the dot or the colon are detected before the slash, which are not valid parts of a username on the public index, so you push to that registry (your registry, or your organization's registry server ostensibly.) These connections are unauthenticated.
Is that about the state of things? Where is the confusion?