Short answer : never...
It would not make much sense (to create an empty immutable array...), but [NSMutableArray array] would...
Now, to answer your question, [NSMutableArray array] would give an autoreleased object, so you don't want to autorelease it again...
But you could add a few objects and return it in a method, and the caller would then be responsible for retaining it.
phjo