I might as well throw in my 2 cents worth. I fall in the category of one does not have to be a good player to be a good teacher. I think a lot of college professors would be lost if they had to go work in the field that they teach.
To be a good teacher, you have to have knowledge. The usual route to that is experience playing, but is not the only route. Now, don't get me wrong, I wouldn't go to someone that was a C player that only had a few years under their belt. What I am referring to is a veteran of the game.
Not necessarily as a player though. Most of the good instructors are not top players. That is because they spend their time teaching and learning, not playing.
I'll use Scott Lee as an example, since he posts here and is well known as a very good instructor. I'm no real good player, but I would have the best of it if Scott and I matched up. Yet, I would have no problem going to him for advanced lessons. (If I could afford it) He is more than qualified to teach pros.
He got there by being around the game and studying it. He knows what the moves are supposed to be, and how to teach them. But, put him on a table and he might have a hard time doing them. The sole reson for that is- you have to practice what you've learned to get good at it. He spends most of his time teaching, not playing.
How does he know his methods actually work then?? Again, by experience. He has enough students that will testify that they work.
To sum it up, one does have to have a lot of experience around the game, not necessarily playing the game, to be a good teacher.