It makes more sense for the general, because the people are evenly spread among the CDs.
For a primary, it makes more sense to break it into districts of equal numbers of Republicans.
It is precisely what you propose makes sense . . . which is why the Uniparty does the opposite.