Hi everybody!
Although DupliVerts is a powerful tool, it lacks some more control that would be desired sometimes. Now, you can only affect all objects that are duplicated in the same way, so the result is always the the same object.
I would like to propose the recreation of Dupliverts as a modifier. This might help to move it from Anim Setting tab to the modifier stack, which I think is a better place for Dupliverts, used mainly as modeling tool. But them main improvement would be adding more control and variation to the result.
Firstly, the basic function should remain the same. The “Track” and “Up” buttons should be copied, and if only one object will be dupliciated, it will work like Dupliverts we know now.
Secondly, the user will be able to duplicate multiple objects. The total number of duplicates will be based on number of vertices the parent object has. The number of objects should not be limited, so they will be listed in a list (the “Objects” row). The distribution of them will be random, user only specifies the propability (or percentage) that the object will appear. For each object, location, rotation and size variantion could be defined and also the Tracking and Up axis. Either constant (“Const” button) or random ("Random! button) offset might be possible. This is per object setting, so it could be possible to have one type of object uniformly rotated and another randomly. This might be set in the 3x3 matrix for location, rotation and size on each axis separately. The small blank button is selector, because it might be hard to orientate when more objects were added and for each a big part of the tab be created.
Thirdly, the modifier should enable mixing duplicated objects with different materials. The number of objects should be independant. It is possible to try to duplicate object with multimaterial assigned, so an option to preserve assigned material for object moght be handy (the “Mat” button).
The “Seed” field is for distribution and random transformations. The “Make Real” button will determine the result of modifier. After applying this modifier, the user might get diffrent results. If “Make Real” was not pressed, it will generate a new single mesh with correctly assigned materials and vertex groups based on duplicated objects. If the “Make Real” was pressed, then the result should be separate objects, each with correct material and local transformations (in contrast what the result after making duplis real is now, each object having the same local trnaformation only the mesh transformed).
Possible problems:
If the “Rot” button is pressed, the duplicates are alligned with vertex normals, so the duplicates might be transformed only on global axes, or more preferably on they respective local axes. For this, it might be good to create vertex groups based on the names of objects, and for each also remember local transformations.
Current limit for multimaterials is 16, which might be very limiting for this modifier.
Eventually, the entire modifier could be Dupli modifier, and you can choose between DupliVerts, DupliFaces and DupliGroups.
What do you think about it? Will it be possible and useful?
P.S. I don’t know C, so I cannot make it, it is just a proposal.

I think this would be very useful - imagine the complexity when adding a duplivert modifeier in a stack with an array modifier, and that using an empty to offset… Oh,boy!