You are the second person asking for that
http://forum.hibernate.org/viewtopic.php?t=985983
For each constraint impl, initialize is called once (slightly after instantiation).
Usually one constraint impl object is instantiated per annotation. The number of constraint is fairly limited, let's say 2000 on a 300 entity model.
In the example of @Max, I imagine the instance would take around 100 bytes in memory, so we are talking about 200k of memory for 2000 constraints. Is it really useful to use a singleton approach?
That being said, the constraint is build by a ConstraintFactory, I imagine it's possible to tweak a ConstraintFactory to create singletons. But at that point I think you would use more CPU and have more scalability headaches than what 200k of memory is worth.