There is probably nothing wrong with the system itself. The fault lies in its abuse and in the failure of the welfare agencies to apply it properly. Exorbitant rents should not be paid; the amount should be similar to that paid when the person concerned was working and, above all, people should not be moved to dearer accommodation while on welfare.
People on benefit are supposed to be actively seeking work and if a job similar in wage and conditions to that which was lost turns up, then that job is supposed to be taken. Level of benefit does not come into it and if a number of jobs are refused, benefit is supposed to be cancelled.
A partial solution would be the payment of a fair but restricted rent allowance instead of the automatic payment of whatever is asked. There is supposed to be a limit as to what social security deems 'reasonable'.