The problem with Bouffalant is its sustain. The recoil damage leaves it more vulnerable to Revenge killing and to counterattack from Pokemon who can survive Head Charge. Doesn't really help that it's pretty slow.
Seismitoad is kind of like a Gastrodon with more versatility and access to Stealth Rocks. He can go down a defensive route and tank a surprising amount of hits (no sustain though) or go with a Rain Dance set and Swift Swim sweep. The problem is that Seismitoad is jack of all trades, master of none. He can do them all sufficiently, but not reliably. This versatility in role packed with a decently high speed for a Defensive Pokemon merits him B-/C+, though personally I think he's more of a C+ simply because his most useful set (Defensive) is mostly outperformed by Tank Swampert.
Against nearly every wall, Bouffalant has the bulk to take a hit if he 2HKOs them. Getting revenge killed is a problem but you can just withdraw Bouffalant to dent something else later in the match as well. He probably does want wish support if you need to break numerous walls, which is a disadvantage, but his sheer hitting power is really, really awesome. He's like CB Staraptor with bulk instead of speed.
That makes sense sorta. Seismitoad's statistical bulk isn't really all that, but his typing makes up for it.
Do swift swim sets go physical or special nowadays?