The feature is fine, you even said it yourself, it's great for neutral spectators and most of them will not be for scouting. So punishing the viewer experience for the majority because a couple of smartasses decided to have a sneak peek and counter-team the next round isn't good policy.
Linfanz already mentioned how using an alt or asking a friend could bypass what you're suggesting.
Shuffling at end of each round would solve the problem to an extent - you could still scout a semi-final if you already secured your spot in the final, and this already sucks because the final is the most important game. The biggest disadvantage of this, imo, is making the tournament last way longer. Having to wait, every round, for every match up to end before starting the next round. Let's be real here, ain't nobody got time for that, and despite most thinking this is a good suggestion on paper, I see it terrible in practise. EDIT: Disregard this because you could probably code so it would be a random shuffle made at the beginning of the tour and not at the end of each round.
Barring disabling spectating while the tournament's live, the only solution I see to this is keep switching teams, so I'm with gbwead on this one. Maybe if switching teams between rounds happen more often, snipers will stop snipping because of their failures, creating a metagame about to c-team or not c-team.