040 and 030 quite different beasts internally. 040 has a highly optimised pipeline and cache, and it can execute much more instructions than 030 in a given period.
Usually it is said that a 25 MHz 040 performs two times better than a 030 running at 050 MHz, though it depends on the software you're running.