I think the article is assuming the base for `arc diff` is always the parent revision, i.e. `arc diff HEAD^`, which is how the workflow works best. Strangely I don't think the open source Phabricator is set up to do this by default so you have to actually type `arc diff HEAD^` (there's probably some setting somewhere so that you can make this the default).
On the diff in Phabricator you can enter the dependencies manually. Really the tooling ought to do this for you (and at Facebook our internal tooling does do this) but for now manually specifying the dependencies is not terrible. Then Phabricator shows you the nice dependency tree in the UI, so you can see the state of all of your diffs in the stack.
Cheers
Simon