I don't think `constraint` was ever removed. We had `contract` in the design at some point, and some people suggested to add `constraint` to replace it, but it never got done, so it could never have been removed.
As to the reason why `contract` was removed and why `constraint` was not added: When we used two different words for interface-types and contracts to constrain type-parameters, people where complaining that the two are really the same thing - a way to express a subset of types. So, in response to those complaints, `contracts` where removed and instead interfaces where expanded to make up the difference.
Then people complained that we used the same name for two different things.
Point is, interfaces and constraints are apparently sufficiently similar, that many people want to use the same name. And sufficiently different, that many people want to use different names. They can't both have their way.