Nope, i'm not creating new material for each sprite, i'm creating new material for each shader and atlas, that's why there is a cache for materials.
If you put hundreds of different sprites with same shader and same atlas in one depth, they will add only one (or two) draw call.