The freedom of movement enables the countries from which the migrants emigrate from to avoid political instability caused by citizens who are angry because they have a low standard of living.
The freedom of movement enables the labour market to work better. British workers compete with workers from other EU countries and thus the best economic outcome is achieved.
These are the two main reasons why it exists.
Fundamentally, every human being has to work and settle wherever but there are certain environmental factors which determine where people actually live like the ability to earn income and the ability to meet expenditures etc etc.
The faulty analysis made by right wingers is that migrants are the cause of their plight. They steal jobs and drive down wages. When in reality, capitalism does this. It is a fundamental part of capitalism. In relative terms, a Polish builders living standard increases when working for a low wage in the UK and a British builders living standard decreases when working for a low wage in the UK.
The only way to solve this problem in the most equitable way is to unify the workers of all nations and develop an economic system that does not promote a hunger games style society. However, people cannot see things in this way because they have been fed the individualist and capitalist propaganda.
How do I know this? Because as I mentioned before...when people say the immigrants are taking the jobs, this shows a lack of understanding of how society works. The employer chooses the migrant over you because they can earn more money. It's this motivator which needs addressing.
The chosen method, i.e. controlling immigration is a short term remedy. What will happen is that the migrants won't be able to leave their respective countries and then they will have to engage in politics in order to better their lives. This will shift political instability from the Western countries into the other countries (Eastern Europe and Southern Europe)