Exactly.
MAME is about emulating as accurately as possible.
Dedicated emulators (like Zinc, U64, etc) use shortcuts to get the games to run quickly on modern systems, bypassing video hardware emulation and translating graphics to directx/OpenGl, etc.
When a driver initially hits MAME, sometimes shortcuts are used. As the drivers are corrected to create more accurate emulation, sometimes the side effect is a slowdown.
Also, don't forget mame is a MONSTER. It's impressive to me that with the insane amount of drivers it has and games it handles that it runs as well as it does.
Of course the developers want to play games, but I agree, the accuracy is actually what slows things down.
And your original statement about the goal of software developers to make more optimized and faster software doesn't really fit in almost ANY scenario (besides maybe the Operating System). Look at almost any commercial package (office, photoshop, IM Clients, web browsers). If the only driving requirement was a speed increase, we'd all be using Excel 1.0 or Lotus 1-2-3 for spreadsheets, or MultiMate for word processing. Unfortunately, what usually happens, is people demand more functionality, more features, and are willing to sacrifice speed as the cost. Otherwise, I should be able to run Office 2003 on my 486 (I probably could, but I'd want to commit suicide within 10 minutes). Of course you should always try to write tight and optimized code, but when you're adding an insane amount of features to a relatively small program (thousands of games on hundreds of different types of hardware all rolled into one small package) you're unfortunately going to have to give up some speed as a side-effect.
You're not a devloper, are you?