Struggling with some of the assumptions here.
For instance if you know that the passphrase is composed of dictionary words spelled correctly then you can calculate the time to brute force based on using all the dictionary words and gradually building up the length and complexity.
However if you don't know then presumably you also have to brute force a string of random characters to the same password length. Possibly some of the examples assume that the first thing you do is a dictionay attack (but to what length of characters?) followed by a random character brute force.
I think that this was what the XKCD example was based on - making remembering long strings of characters easier.
If, for instance, you picked one set of 5 non-dictionary characters, say xf-r@, and inserted this into all your password strings then possibly a dictionary based attack would fail. Again I assume this is some of the point of requiring punctuation in a password.
I would be interested in the entropy of, for example, correcthorsexf-r@batterystaple given that you don't know that it is mainly a dictionary based phrase and you don't know the length or location of the non-dictionary string.
It is easy to work backwards if you know the answer. Assume you don't know the answer for a more accurate result, perhaps?