Interesting.
The point you raise about pints being thrown is a good one, because you can easily see it happening, and constantly going to the bar for another one through the entire match is one too.
Perhaps limiting the amount that can be bought at a time might help (but then that means more people in each queue, potentially) and closing the bars 10 minutes before kick off, then opening 10 minutes before half time, or something like that, could limit the amount people get through and the amount they go to the bar?