they can only claim benefits in the country they are allocated to
It wouldn't solve the problem. You are already assuming that most of them would claim benefits but what about those who want to work? Wages in Bulgaria are not the same as in Ireland, and I bet most of them would rather give up Romanian benefits to live and work
in Germany or Belgium.
So, for the overwhelming majority of immigrants the question still remains the same - how do you keep them in poorer countries of the EU?
We observed the problem very well with the first wave. Poland took in some of them, local parishes found them flats/houses to stay in, helped them find jobs and they got Polish benefits (much lower than, for example, German ones). In a matter of weeks most of them went to Germany anyway.
We can't have any viable distribution scheme as long as wages/benefits are not very similar all over the EU, and it's not going to happen in predictable future.