We seriously need to get past this mentality that if you break the law long enough without getting caught, then it doesn't count any more. Certainly those 'productive' migrants who have been here for a a long time and who have not broken any additional laws should be able to go home and apply fo work visas to come back. But they should not be allowed to overstay those visas and they should be required to have them in order to be here.
Anybody who refuses to return to their home country and have to be deported should have no right of return by ANY means.