I think you can also throw in the fact that people don't read as much any more. If they've never seen a phrase written down, they will use the phrase that sounds nearest to what they've heard that they can rationalise.
Free rein was always written as 'free rein' in the past. It's only lately, with the prevalence of poor spelling and mishearings being spread about online, that the uses/spellings are changing.
Of course, that too. The English language perhaps doesn't help, with its great number of homophones !