IMO the major shortcoming of smart contracts is that they have no tie to the real world, so the only thing they can really govern is other contracts, which themselves can only do the same thing. They can't be very interesting without oracles (e.g. Augur).