>What if the contract is complicated and you end up having part of it invalidated in court?
Sounds like a feature, not a bug. Contracts have to be simple. If you can't do the transaction with a simple contract, you have to find a different method to carry out what ever is desired to be done.