I'm not sure it is "re-building something that is already there" as much as it is enhancing or restricting what is already there. In which case, I can think of many reasons.
1. You want to restrict which model constructs can be chosen. For instance, you don't want the modeler/developer to do ScriptTask because you don't want Groovy or JavaScript executing in your JVM. So, your palette does not expose that option.
2. You are providing your own custom modeling constructs to the palette that integrate more effectively with your application.
My understanding is that a developer can do anything they want in the Eclipse designer. If these types of things can be controlled and managed in the Eclipse designer, let me know how.