We generally allow capital and goods to flow freely between nations nowadays – which is a good thing. However, that leaves us in the situation where the whole purpose of a nation appears to be working for the benefit of labour in that country.
Now it may well seem like the best thing to do – if we didn’t do it we would undoubtedly have lower incomes. However, this would be because the people in abject poverty overseas now have more options and will be able to manage a higher living standard.
Often people blame globalisation for the abject poverty we see overseas. But it isn’t globalisation that is the problem – it is the lack of globalisation. Closed labour markets, which are effectively massive labour unions, are a large part of the reason why poor countries can’t pull themselves out of poverty.
Now we may value the welfare of local citizens more than we do foreign people – some people have said so here. But even in the case where loosening migration would lead to worse outcomes for locals (which is not always the case), we would have to discount “non-local” people quite substantially not to let them in. Remember that the human cost isn’t all on one side – when we close off migration we are implicitly falling the lives of people overseas as well.
How is this like a labour union? Well labour unions do all they can to increase workers wages, often at the cost of the unemployed (who are the competition of the employed). Unions thrive by hurting the unemployed through artificial barriers – and they inherently value employed people more than unemployed people. Change unemployed to “non-local” and employed to “local” and we have the same thing for nation states.