Look, being serious now, there are checks for EVERYTHING in Pokémon. We both know that. We can go back and forth like this all day long with every Pokémon in existence. But battles aren't so fatalistically rigid in how they play out. Spikes, of all things, is not a problem for my team. Reflect halves anything they can accomplish with Swords Dance. And if I see them setting up -- I drop a screen, and switch to a sweeper. Does it always work? No. Does it work enough to feel reliable under most circumstances? Absolutely. It's just as much a gamble to send out a sweeper with no protection and assume the leads will pan out nicely so you don't have to switch. It's proven to be -less- a gamble, in most cases, to go in and set up fortifications, not knowing the full extent of the other team (as is the case in 3v3, where they pick a few but you don't know which). Given the vast, vast number of moves in existence, it's highly situational to come across a Brick Break, a Taunt, a Defog or a Magic Bounce -- and usually it's obvious when they're coming, and you shuffle priorities accordingly. Sometimes, you can even use Carbink as bait deliberately -- a switch to Noivern when they think they're going to hit you with Earthquake (which doesn't OHKO anyways), for example. Pokémon is a beautifully fluid thing.
Just a word of advice: Don't waste your time setting up a screen when your opponent is Swords Dancing. It just gives them time to do another Swords Dance. You also wouldn't need to worry about taking damage on switches if your suicide lead actually did its job properly.