check this video. This is Mark Renshaw, Mark Cavendishes main lead-out man for years. He got ejected from the race for this. I believe that was only because he wasn't the main sprinter. If he was, he simply would have been relegated.To someone not in to the sport the etiquette of cycling seems really complicated
Here's a photo of what happened just before Bennett's actions yesterday
Count back 4 places from the front. You'll see 2 guys together in blue. Bennett is the 2nd in line of those. The first is his lead-out man. Just to Bennett's left you can see Emil Leipins. The positioning is crucial here. The place Bennett needs to be is on the wheel of his lead-out man. Thats to ensure he is out of the wind and has full advantage of the draft. Also, it will be pre-arranged with Sam, more or less, when the lead-out man's job is done and Sam has to ride around him and start sprinting. What's happening in the photo is that Leipins is trying to disrupt Sam by forcing him off his lead-out man's wheel.
Here's the video of what Sam did to defend his position
The crucial points here are that Sam's hands never left the bars. If he did, thats automatic disqualification. And, in contrast to what Renshaw did in the first example, Bennett lead with the shoulder. That sort of bustle is completely normal and expected in the sprint. Its why GC men never get involved. A lead-out man is as specialised a position as sprinter itself is.
The other thing to note about this video is the reaction of Leipins. There was no protest from him. In fact he tried to do the same thing a second time, and Sam had to react a second time. Bennett is the top sprinter in this race. Teams know they can't beat him in a straight-up sprint so they need to try tactics like this to try and put him off his game. Sadly it worked yesterday but, it wasn't Leipins team that took the stage, it was Sam's old team, Bora. Ironically, Ackerman is why Sam had to leave that team last year. They're a german team and they wanted a german sprinter. Fair enough, I suppose, but they replaced Sam with an inferior sprinter purely because of nationality.
As you rightly said, this is etiquette, not necessarily rules. Sam knows to expect this shite, and he has a right to defend himself. That's what makes yesterday so fucking infuriating. Had he not defended his position he would have lost out anyway, as his momentum would have been completely disrupted.