The problem of this post is solved. Thanks to @shingo and @Polynormial. The list has two reference of the anim instance, and the IndexOf returns the first one.
I think I know what may caused the situation after all. It's a reference I didn't cleaned up before releasing into the pool, and that dirty reference was at the index of 1 in the list. So after releasing it into the pool and getting it out, then adding it again at index of 29, the one at index 1 still exists.