Works cross platform, has all the advantages of XML (for instance, there was a PHP script created to make a WPF app based on user info entered into a webpage), superior databinding (an XML advantage), completely resolution (device) independent, hardware accelerated video rendering, hardware accelerated text rendering, more powerful development tools (VS vs Xcode, Expression/Illustrator/Maya/3DSMax/Flash vs Xcode/IB) and all sorts of other stuff. WPF does a lot of the stuff that Flash and AJAX do... which isn't really the purpose of Core Animation.
WPF seems more like a UI platform than an animation library. It seems to be a completely different thing than Core Animation.
Core Animation is meant to be used from inside the program, adding little to no overhead, to simply animate components. WPF seems to be focused on a method of creating components, which Core Animation is not.
Here is an example of what Core Animation is meant to do (from my understanding):
Basically, a target location is specified, and Core Animation handles the rest. So, when a programmer has written the code to decide where a bunch of thumbnail images should be located, instead of simply moving the images with something like [image setRect:newloc], the programmer would use [[image animator] setRect:newloc].
It integrates into the code the programmer would write anyway, with just a few characters added. In other words, little additional programming is required.
See
this YouTube video for what a demo of what I'm talking about. The demo (which Steve showed briefly at WWDC 06, and is shown half-way into the clip) was apparently written in only 2000 lines of code, and it is quite feature-filled.
The above image is from a website I created where I made something remotely similar to Core Animation in Javascript.
To me, it seems like WPF and Core Animation are meant to accomplish completely different things.