Studying to interview with a big company definitely improved my skill and knowledge of Computer Science. Not fun, certainly, but to some degree useful outside of the interview.
I don't think companies necessarily think that. I think most companies resort to algorithm style interviews because they can't think of anything else that is better. You've got a candidate for probably an hour, probably in a room without a computer, what else can you do to exercise their programming knowledge besides toy algorithm problems?
I don't see how this process is useful to the candidate. I mean it is useful if he is actually hired but is there any other usefulness beyond this? Does it improve your skill? Makes you a better person? Is it fun? I don't think so.
Also refer to my other comment.