>Why does the word get shorter and eventually to the length of a char and then the rotate occurs?
That's the problem with recursive functions, they are difficult to follow and often you have to take it on faith that they work. Just keep working through the code, write the flow of data on paper, whatever it takes, you will figure it out.