I figured out most of these answers.
"atlas0 material" is the way to go, and there is no difference with animation or tilemap.
also, my problem was derived from the use of tk2dSpriteCollection instead of tk2dSpriteCollectionData. In using the latter, everything works both in the editor and on iOS. I still do not understand, however, the fact that caching a reference to a tk2dSpriteCollection was provoking a silent crash in a case and worked fine in the other...
Lastly, I would still be interested in knowing if looking up the coll.spriteCollection.FirstValidDefinition is the correct and safe way to go to catch the shared material. What should be done if no tk2dSpriteDefinition exist at that time? should the atlas0 be modified to ensure that generated sprites will have the correct parameter?