Hey @hactor - I actually wondered that myself, until I found these two methods of CCSprite:
/** returns an Animation given it's name. */
-(CCAnimation*)animationByName: (NSString*) animationName;
/** adds an Animation to the Sprite. */
-(void) addAnimation: (CCAnimation*) animation;
So when you create an animation, you can add it to a sprite using [yourSprite addAnimation:walkAnimation];. Then later on, when you want to use that animation, you can retrieve it easily by calling [yourSprite animationByName:@"walk_animation"]. I'm guessing it's there as a way of retaining your animations without having to store it outside of your sprite.
I'd almost prefer that it stored a CCAnimate action, though, so that you wouldn't have to build an action around the returned animation and then run it on the sprite. Actually, what would be handy is an -addAction:(id)action withName:(NSString *)name method for CCNode, coupled with a -runActionWithName:(NSString *)name method. That way you could build an action, pass it to your sprite for later use, and run it easily by calling its name later on...