I think its a bug you have discovered, in the source it looks like for a duration its looking at 'easing.dur' and not 'attr.dur', you can prove this by setting this in your object...
animateCircleIn.easing.dur = 400;
animateCircleOut.easing.dur = 400;
and it will work.
Highlighted in a fiddle here with it working. So I think you will have to do an odd workaround like above, or change the snap.svg.js source to match. (I'll see if I can get an update to github)
I think in snap.svg.js, ms = easing.dur; should be ms = attrs.dur; unless I'm missing something about how its set.
(git pull request was done, I think this is fixed in 0.4.1)