As some of the other posters here have alluded to, maintaining state is the greatest burden on our chat system. Passing state over IRCv3 tags allows us to greatly simplify the state tracking, and allows us to scale the chat system better. Likewise, batching updates is a necessary measure for scaling the system. Allowing users to disable it is simply not feasible.
You’re right that we’ve diverged from IRC, but most IRC servers don’t have to worry about having 500,000 users in a single channel.