We know what we have
I can't let this one pass. :-) How do you know when the existing implementation gives repeated collisions? I assume program IDs are pretty unstable, particularly in Roxen where module loading can happen anytime. And since collisions cannot be diagnosed from the application level I doubt anyone can say they depend on the current behavior.