Of course try and change a service contract and you will be in a world of pain. Now, changing contracts should be pretty rare but adding a method to an existing contract is not entirely farfetched and as it stands I don't see how it can
be done other that by knowing a tremendous amount about the
details of the internals of acs-service-contracts.
I am with Andrew on the "service contracts are too hard"
page for an awful lot of things.
Taking service contracts out of the DB and making it all
driven from contract definitions in Tcl would make that
easier although you would still need to have a mechanism
to bind different implementations for some things (like
payment gateways where you want one of several available implementations to be used).