I don't often discuss politics with my niece; we've actually had physical altercations before. But I mustered some courage and brought this up to her, and she had the following to say: "The two party system forces people who advocate for issue X to also have to advocate for Y and Z, when they may really only care about X. Another factor; the decay of respect of and audiences for traiditional mass media, and the rise…
I think the problem is that when you talk politics, the subject or your position are irrelevant. You can even extend that to what the parties themselves do and say (the american uniparty has been a common complaint for many voters).
Why ? At the core, the issue are the ideas that each party represents, and how those ideas label you immediately with your peers, regardless of what you actually advocate, or what the party line is on a given subject.
Take a statue. The republican position is to not build it. The democrat is to build it. Just having a conversation about the merits of the statue automatically puts you on a spectrum.
If you are against the statue, you must be an uncaring republican. If you are for the statue, you must love doing charity with other people's money.
And so on.
This is in spite of direct evidence that both parties don't seem to care about americans, and the unrestrained use of their tax dollars.
Politics in the USA earns you a label, for free, that is not even accurate or deserved.