Oda had no reason to not let him defeat Vergo, but he just made Vergo too strong for whatever reason. Back then I guess the underling tax didn't kick in, Vergo was moving like a demon. Big picture it just didn't make sense to not sacrifice Vergo for Smoker and cook something else for Law. That was Smoker's fight, he already got put down by Law but you could atleast say Law is too hax, whereas with Vergo he just couldn't overpower him.