batch count = "render calls" https://github.com/mattdesl/lwjgl-basics/wiki/Sprite-Batching
A game with hundreds of sprites that don't fit into a single 1024x1024 atlas might benefit from a sorting mechanism. Aside from some games needing hundreds of icons and sprite sheet animations (items, tiles, spells, etc), you also need HUD/GUI elements and fonts (different sizes, styles, etc can pile up).
In this case you need to be smart about rendering, and about texture packing. It makes more sense to pack your HUD/GUI elements into a different atlas than your game tiles; then render all of your tiles in the same batch, and all of your HUD/GUI in the same batch. Also; since things like changing projection matrices, setting blend functions, switching shaders, etc. require flushing the batch, it's not just texture atlases to be concerned about.
Other games need to be even more careful. Unless I'm mistaken, Illarion
(which uses LibGDX) dynamically packs texture atlases based on what sprites/tiles are nearby the player. This is because the scenes are extremely complex, and the characters are made up of many components of wearable items/clothing.
You can debug render calls with SpriteBatch.renderCalls (print it out after ending the batch).