Why is that, though?
It's because the Democratic nominees are always far-left liberals, right in line with the Dem agenda. Republicans, on the other hand, never nominate conservatives; they either go for moderates or liberals, like Romney, and that is anathema to the conservative base.
Democrats are happy to vote for liberals. Conservatives are not, and have had enough of it.
Your analysis of the two parties may be quite correct. However the result is not good. It will become increasingly difficult to win the White House (Executive powers) with a divided party. Demographics are not breaking in our favor also. If only conservative candidates get nominated, moderate republicans might sit out the election. If only moderates get nominated , conservatives might sit out the election.
The only viable solution I see is that primaries should be fought hard by both factions. Let people vote and decide whom they want. Voters always make the final decision. When primaries are over, all factions should unite and vote for the nominee selected by voters.