The concept is not bound to the git clone <url>
command itself (which is essentially not different from git init
followed by git remote add origin <url>
), but to the role each repo plays in your distributed version control. And this is not absolute when using a DVCS, as explained in the second answer of the question you've linked to.
I'd like to think the upstream is where the "official" or "common" version is, where anyone would ultimately consult to get the most truly version.
If others (or yourself in another computer) collaborate with you through Github, then Github will be primary holder of common information and the source for you and them to get the most recent updates. So it would be your upstream.
If, on the other hand, in case your local repo and Github's repo diverge somehow your version should be considered the most correct, then Github is your downstream, and you are effectively pushing information downstream. But for others, who get the information from Github, it is their direct upstream (and your repo an indirect upstream).
Edit:
About the -u|--set-upstream
flag, it actually sets the remote tracking branch for the branch being pushed, because it is logical to track upstream (so you can receive fresh information), not downstream (that have the same or older information than you). As it is really uncommon to push/pull from downstreams, the flag has upstream in its name. Also, the concepts of upstream and downstream sometimes make less sense when you have a distributed architecture where that happens.
For the Github case, you can use the remote tracking information on the branch to simplify command usage, even though you consider it as your downstream.