A question I'm often asked is how the local branch name can different from the remote branch name, which is what this syntax is for. It also makes it easier to remember that "git push :<remote>" deletes the remote branch, and ":" isn't some randomly chosen character to delete remote things.
It's just a shame that the git push local:remote syntax is so high up on the learning cliff that many git users don't know about it.