I'm going to try to elaborate on what punishability means and how it applies to a pokemon battle. That way everyone can see clearly that Stealth Rock is just much harder to punish than all other attacks in the metagame, and this creates the overcentralization that is symptomatic of a broken tactic.
In fighting games, and make no mistake, pokemon is a turn-based fighting game, punishing a move means you negate that move by initiating your own move that is faster or as fast. Thus you stop your opponent's initiative while maintaining your own. You cannot punish by blocking unless the blocked attack damages the user or the attacker becomes vulnerable if blocked, because blocking does not create initiative. Blocking is equivalent to protect and detect (you cannot block and take initiative at the same time but you can take initiative while a sub is up).
Punishing in pokemon means negating an attack's effects or damage(whichever is the player's goal in using that attack) in as many or less turns than it takes for that attack to be effective(all attacks in pokemon take 1-3 turns to implement). Meaning that you are able to make a change from the last turn to the current one, while your opponent has accomplished nothing with their turn. If a move doesn't punish 100% of the time it's used against it's intended target, then it's called a soft punish or soft counter. For strategic discussion I'll only be talking about hard counters, as there are huge amounts of soft counter such as critical hits, para hax, freeze, etc.
I'll list some common attacks in pokemon and list ways they can be punished:
**note**If faster, spore and fake out+knock out are universal hard counters to every attack. So if I forget to list them under a move, know that they're supposed to be there.
straight damage(flamethrower, earthquake etc.)/1turn:
switch to an immune poke/1turn
use a recovery move/1turn
switch to a resistant poke/1turn
KO with faster speed or a priority move/1turn
Use reflect/light screen/1turn
thunder wave/1turn:
switch to a ground type/1turn
switch to volt absorb/1turn
switch to motor drive/1turn
switch to quick feet/1turn
Lum berry/0-1 turn
if faster:
Substitute/1turn
Taunt/1turn
Safeguard/1turn
substitute/1turn:
if slower:
break the sub/1turn
Roar/1turn
Whirlwind/1turn
if faster:
Taunt/1turn
Substitute/1turn
Spore/1turn
spore/1turn:
Lum berry/0-1turn
switch to insomnia/1turn
switch to vital spirit/1turn
if faster:
Taunt/1turn
Subsitute/1turn
Safeguard/1turn
toxic spikes/2turns:
if faster: Spore/1turn
switch to poison type/1turn
switch+Rapid Spin/2turns
(safeguard and Heal Bell are not punishes because toxic spikes will still be active while safeguard is up, meaning their effect is not negated).
Rain Dance:
Taunt/1turn
switch to Sand Stream/1turn
switch to Abomasno/1turn
switch to Cloud Nine/1turn
switch to Air Lock/1turn
if slower:
Sandstorm/1turn
Hail/1turn
Trick/1turn:
Substitute/1turn(requires predicting two turns ahead if they are scarfed)
switch to sticky hold/1turn
switch to poke with same item/1turn in wi-fi this would be a net loss of 1 turn for the trick user since they are forced to switch, but there is no turn lost on shoddy. Many people on the forums say this makes trick even more broken than stealth rock.
switch to Lolpunny/1turn
Stealth Rock/1turn:
if faster:
Taunt/1turn
Spore/1turn
Fake Out+KO/1turn?
Notice that while most attacks have 4+ punishes or can be punished with a net turn gain, Stealth Rock only has three hard punishes, two of which are universal punish moves and none result in a net turn gain. Rapid Spinning the rocks away results in a net turn loss and therefore is not a punish. This lack of punishers is equivalent to a pokemon that lacks solid counters, and shows why stealth rock is used so much and why in my opinion it is a cheap move.
If anyone wants me to elaborate further on how attack punishability works in pokemon, let me know and I'll probably create a thread dedicated to the concept.