From this moment, there are many companies that are hiring Agile Coach and many of them prefer they work as permanent. Why? Because it is cheaper to have one working internally than a couple of Agile Consultant that most of the them charge their rate per hour.
However, it would be better to hire an external Agile Coach and last but not least, the company should replace him after a period of time.
First of all, if the Agile Coach belong to the company, he has to report to any manager so his influence will be reduced because his manager can say please be quiet and be patient with the transition to Agile. On the other hand, if you are working as private (or freelance) Agile Coach you are free to speak without bothering top managers (or directors) so you can propose innovative ideas or approach.
Indeed, if you work by a big Agile consultant and you have an issue with any manager your consultant can protect you sending another Agile consultant with more seniority to discuss it.
Secondly, I consider that an Agile Coach such as soccer coach or any trainer has to work a period of time (no more than a year based on my own experience) in a company and then be replaced by other. Why? Well, as many soccer teams after a while it is good to know another approach. It means, someone to refresh the air.
Furthermore, many companies hire an Agile Coach to assist one or two teams but after a while company starts growing on Scrum team and you have to hire another Agile Coach because one is not enough to help every Scrum team.
In addition, as Agile Coach you have to deal with Product Owner that many times are a former project leader or even worse managers so you need to be very cautious on managing with them.
To sum up, if your company decides to start using Scrum, hire (or use someone from your company) a Scrum Master and a Product Owner per each team (the ideal situation) and after several sprints if you feel that an Agile Coach will improve your team, you should hire one but don´t become him as part of your company.