How so? You contract to provide a specific service, not specific code. The contract should be for transfer of a license (of whatever kind) to use the IP and business benefit,
not for full transfer of all IP.
If a client doesn't pay you respond by denying access to the service - which is exactly the same as a hosting company turning off a server for non-payment of hosting fees.
I wouldn't do the fade thing, because while it's entertaining it's rather juvenile. But I would be completely happy to delete all work from a client's server and restore it to its previous state if it's obvious they have no intention of ever paying.
This is normal behaviour for a business. Generally if someone tries to default on payment, they can expect goods to be reclaimed and services to be terminated.
The fact they're running a business and you're a contractor doesn't change that. You're running a business too. If they don't understand that, save yourself the grief and don't work with them.