Instancing is not as efficient as batching, performance-wise. It’s a lot more efficient memory-wise.
Even though it’s only one draw call (a win), instancing still has to do per object setup inside the driver and that’s not free.
Still, for objects of a certain size the overall gain (from reduced memory) makes up for the small loss in performance over batching. And either way it’s better than separately managed objects.