The answer to this depends on your point of view. I say that changing the contract at all violates the contract. That's why they call them "contracts".
Changing the service contract by adding additional operations "breaks" the client because it will change their proxy code. In many Enterprise environments, such a change requires a QA pass, even if the existing client code is not calling the new operations. Basically, by adding operations, you are editing the client code. In that sense, it's clear that QA is required.
There's no need to modify the service contract, when you can instead create a new service contract, and have a different service endpoint implement it. You can even have the new service implement both the old and new contracts, and share the exact same code to implement the old one with.
I'm also one of the old fashioned types who believe you should use a different namespace for a different contract. In at least a picky sense, the old and new contracts are different, so potentially the same name might mean different things between the two. This can be mitigated by having the new contract derive from the old, so that the old names will remain in the old namespace, yet new names would be in the new namespace.