AFAIK, using many different shaders will cause a performance hit. Everytime the GPU has to use a different shader to render an object, it has to swap the shader programs round.
Whether DBP orders objects to be rendered by the shader they use, I don't know. I would suspect not, as it seems to order them based on other things like Z distance, transparency and even index ID. So if you have 100 objects, and they use 2 different shaders, it's possible the GPU may have to swap the shader program up to 50 times, which would generate a noticeable performance hit.
So, if possible, reused shaders as much as possible for multiple objects, of course taking into account how GPU intensive the shader actually is.