I think before an Ally can be hired away that there should be some sort of timer before that can happen, maybe an hour before they can be hired away again..
There isn't a real purpose in this, would cause a lot of clunkiness having to wait for new allies and would slow down gold rates with it.