Sometimes I wonder if answer to all of these problems is to divide lands based on ideology, politics and other factors. People are then given a choice to migrate between them every 5 years or so.
Nations shouldn't be so big and migrating shouldn't be that hard. Just divide and divide until the group of people stop complaining.
Racists can live with racists. Progressives can live with progressives.