The offensive/spam flags in chat are shown to every moderator from a parent site (on chat.stackexchange.com that is every SE 2.0 moderator, more than 200 right now) and 10k chat users as well. This is potentially far more users than a flag on an SE site itself is shown to.
I don't think it is necessary to show the flag to so many users at once. This can lead to the impressive sight of an entire horde of moderators descending onto one chat room when some flagging is going on, but it often notifies far more people than necessary to act.
Another huge disadvantage of notifying so many users at once is that only the fastest users to act decide on the fate of the flag. If you read up on the context of the flagged message, odds are that by the time you're finished with that someone already validated or dismissed the flag. This leads to hasty decisions on those flags because the users that take their time won't get to decide on the flag.
I propose that the chat flags are first shown only to mods and users in the same chat room, if there are enough users present that the flag could be acted on (so either one moderator or six 10k+ users). If they don't act after a short while or not enough privileged users are present in the room, the flag should be escalated to the mods and users of the parent site. If those users don't act on the flag, it be shown to all moderators and users on Chat.SE.
The exact delay should be just long enough to allow present and active users to handle the flag. Given the high speed that flags are currently handled in many cases, 30-60 seconds might be enough. Though looking at some hard data on flag handling times might be a better way to come up with a useful length.
It might also be useful to increase the number of users that see the flag incrementally even at the stage where all 10k users and moderators are notified. You don't need all of them, and the wide exposure has negative aspects as well.
The advantages would be:
- Not bothering users that are not needed to come to a quick decision
- Allows local differences in chat culture to be policed more consistently
- Higher chance of showing the flag to users that already know the context
But there is also a danger to this, if flags are handled locally and nobody outside the room can see them, the potential for abuse is much higher. This could allow a chat room to develop a very hostile culture, and just flag away anyone that complains, or just dismiss valid flags.
There should be an obvious way for a user to involve moderators from outside the chat room. This could be the "flag for a moderator" option, they would remain global by default and ignore the escalation system. That would also need some UI work as this option is currently rather well hidden and I suspect that many chat users don't even know that there are two types of flags. I've posted my ideas about this in a different feature request