String Reversal -- the Fun Way!

Yes, I know. As I said:

The point isn't that this example is a good way to reverse a string but that it is a way to use recursion to reverse a string. Perhaps the fact that you can write a recursive function in KM is old hat and not worthy of comment, perhaps it both useless and pointless. I just found it interesting, especially that each recursion counted as 2 normal macros since I stumbled across it at the same time as this.

But like I said -- perhaps this has been covered before?