In my previous project we had an external system(non AEM application) and that system was responsible to create tags in AEM.
Business wanted replace two old tags with newly created tags from already authored and published pages . Business gave us information like
1. we need to consider published pages created with specific template,
2. pages attached with tag1,tag2 (old tags and supposed to replace with the new tag)
First I wrote a groovy script to identify the list of pages (actually did the dry run) and shared that list with business for their review and confirmation. The count was something around 747 (definitely content author didn't want to update these many pages with new tag and published manually as it was a time consuming effort for them).
After getting the business confirmation I updated pages with newly created tag and published via same groovy script.
This is the one use case I can recall.
But I won't follow this approach in case of huge page count (like 5K). In that case I will execute update script individually on author and publish instances to avoid resources to get piled up in replication queue.