In regard to Weavile, I have used it a lot over the past few months and I can safely say it is a great revenge killer/late game cleaner. There are many times when, on the face of the team preview, it can hit everything on the opponent's team super-effectively. Weavile was brought up not too long ago and everyone knows the huge amount of pokemon in OU it KOs/traps. There are matches I'll play where Weavile single-handedly wins the match in a lategame clean up, or by trapping key members on the opponent's side. However, there are also matches where it is a massive liability. And i can't stress this enough. It doesn't have the firepower against stall teams, and its hazard weakness holds it back. But the main drawback in my opinion is that it attracts extremely dangerous pokemon, namely Scizor and Keldeo. If my opponent has a Scizor waiting in the wings and my Weavile has just RK'd something/trapped something, they can freely smack something on my team with a CB u-turn and get the momentum, or set up an SD and potentially sweep or at worst severely weaken my team. Keldeo is similar in that it can switch in very easily, and then it OHKOs or 2HKOs my team with specs pump. Other dangerous offensive counters/check to Weavile include Jirachi, Conkeldurr and Toxicroak - things you do not want to give free turns to. Defensively, Weavile is also fodder for Hippo and Skarm to set up hazards and phase, While Forretress and Tentacruel can set up spikes/tspikes and spin for free.
Before anyone says that Weavile can SD and break through these pokemon, I would say that the moment you give Weavile SD in OU, it completely loses it's niche and should be in C or D rank. Its speedy trapping and revenge killing got it to B-, and the fact that it can so easily be a strong liability means it should stay there. Weavile is very prediction-reliant, and often if you predict wrong vs an opponent's Scizor, Keldeo, Croak or Conk, you don't just lose momentum, you lose the game.