This is about free markets. The UK has to take a liberal or a protectionist stance. Either it supports free movement of goods, labour and capital, or it supports trade barriers, immigration controls and capital flows restrictions. The UK cannot expect Slovakia to hire Barclays Capital for privatisation of its assets, the Czech Republic to allow HSBC to open branches in Prague, or Poland to import some £9bn worth of goods (btw more than Australia) on one hand, and on the other to tell their citizens that Britain believes their citizens are all lazy benefit fraudsters.
Britain should stop lecturing the world about principles it does not adhere to. It should stop behaving like it deserves everything and its interests are above everyone's else. This arrogance and unfairness cannot go unnoticed for ever. There is still some respect left for Britain in the European ambit precisely because it has been perceived as a flag bearer for freedom and equity. Its institutions commanded some respect because they are supposed to safeguard these principles.
And above all, this is not about the Finnish engineers and Dutch lawyers. It is about the Romanian nanny and Estonian bartender who provide just as many (if not more) benefits to the economy.
Mr Cameron, your rhetoric is despicable, your argumentation is ridiculous and your morality is repugnant. My vote for you is: to the bin of history.