Because C may conceivably be the better option. Many people asking questions on SO demonstrate what is known as the Dunning Kruger effect. The reverse is true as well, as many people answering questions often undervalue their skill. You must permit the possibility that you are trying to solve the wrong problem, and someone with more experience is likely to notice that quickly. Surely you have heard the expression:
"When the only tool you have is a
hammer, everything starts to look like
a nail."
I'm going to give you the best possible answer that I can, which sometimes may be "I don't think you're ever going to get the results you want with B, have you considered using C?"
Telling people to shut up is never a good idea, especially when they are simply trying to be helpful.
Edit
You are also free to ignore the "Just drop that and use JQuery" crowd at your discretion. Note, nothing against JQuery. It's just an example of how people might look at two points that could possibly work together, and instead try to introduce a whole other solution. Again, that solution may be better; it just doesn't immediately fix your urgent problem. You aren't the only person who will benefit from the answer; anyone else searching for your problem will likely find SO. The technically best answer should, naturally, rise to the top.
Still, getting upset over it isn't going to help anything. You have a down vote and the ability to not engage that user. If you find yourself upset while using SO, there is a very good chance you are taking it too personally.
Messing with the weight of down votes punishes a whole lot of people. A down vote to me is "Something is wrong with this answer, let me go see what it could be". Should I lose 30 rep for forgetting a semicolon in a code snippet in an otherwise great answer?
It's better to just reward great answers, which the system already does rather well. And, again, refraining from telling people to shut up :)