Pros
Internal hiring is favorable for people who want to completely change job types, at least for the lower levels. Everyone is relatively easy to work with and, most of the time, the supervisors do not bother the daily flow of work, allowing for a very personalized work schedule. It is quite easy to find a group of people that one can relate to which makes the otherwise droll days pass by easier. Even if the company is not doing well financially, HR allows people to choose another department to work with in lieu of being laid off.
Cons
When the company is not doing so well, HR is very quick to reassign people to different departments. And although this allows these people to keep their jobs, it makes for increasingly difficult work situations for the remaining people. Withing any given department, there are only a few levels of progression. Once you reach a certain level, there is no where to go except other departments, unless you don't mind an abysmal maximum 5% raise (if you score lower than a 3, you get no raise. and there is absolutely no way to score a 5). Communication between managers and workers is relatively poor. While most of the work schedule is personally based, any aspects which require involvement with another group or person often becomes a hassle due to lack of communication.