Canonical answers only make sense if they're answering canonical questions. Posting your great and detailed answer to some highly-localized version of a massively-duplicated question does not help very many people because most of them are never going to find it.
That doesn't mean you must create your own question, however. If you read Joel's post from top to bottom, you'll see that an important element of that is editing other people's questions. In particular, if you see a question that's almost canonical in nature and is reasonably well-written to begin with, then edit it. Give that person credit for being first, but help the community at large by editing it into a form that will have greater impact.
Don't worry about upsetting somebody with your edit. Be bold. Every action here can be undone if something goes wrong.
There are of course going to be two notable cases where you can't edit an existing question, and those are (a) when all of the existing questions are terrible (cf. NullReferenceException
), or (b) when you don't have the reputation to edit.
If either of those two exceptions describe your situation, then start your own question, and leave a comment about what you're trying to accomplish. Don't worry that you're answering your own question. Don't even worry that you're creating a question just to answer it. That's expected. That is what the Self-Learner Badge is for. It's even right there in the FAQ:
It’s also perfectly fine to ask and answer your own question, as long as you pretend you’re on Jeopardy: phrase it in the form of a question.
That's it. As long as your question is a question, it doesn't matter who answers it or when. What matters is that the question can be found, and that it has a good answer. That helps everybody.
The notion that self-answering should be discouraged in any form is wrong-headed; as long as people are following the rules and posting good content, we want them to continue. You're not being arrogant, you're being practical.
One last thing: If you decide to start your own question because all of the existing ones are too lousy to be salvageable, and you happen to have 3000 rep or more, then start your canonical question and start voting to close all those others as dupes. Yes, seriously, do it. We might want to keep all the dupes around to improve SEO but that doesn't mean we want people posting new answers to them if there's already a perfectly good canonical answer (and question).