I agree that first past the post is stupid, but the strong divide between Repulicans and Democrats seems to be fairly recent.[1] They used to vote less along party lines. So maybe the rise of mass media is to blame?
At some point someone discovered that reporting on a fictional version of reality that confirms the audience's biases was more profitable than reporting on actual facts.