You don't have a choice not to deliver in a smart contract. You cryptographically commit to the contract the maximum amount you may have to pay out, and you can't reneg or claw it back in any way. When the contract settles, the code determines the payout automatically without further input from the counter-parties. You can't withhold anything. There are no capital calls, margin calls, or anything like that. The smart contract is basically an escrow service.
There are two problems though:
1. For long-duration contracts, tying up that much capital is considered capital-inefficient by traditional financial system standards. It's tied up for a duration it could be making interest elsewhere, even if just the risk-free rate with T-bills or LIBOR. Conversely, it is very redundant and guarantees counterparty performance, there's no chance of a breach of contract.
2. Smart contracts that are settled by real-world data or events are subject to the oracle problem - you must trust both the data source, and its transmission onto the blockchain. If the oracle performing that function provides incorrect data, either accidentally or maliciously, it will cause the smart contract to settle incorrectly, and there's no recourse or claw back possible.
So smart contracts are not without their challenges, but they don't depend on real world law enforcement to guarantee settlement.