I am a bit sceptic that especially the test, wether an event occured or not can really be done by a software, especially, when the question is not just wether an event occured or not but also, wether an event occured in the way as defined in the smart contract, for example, the car has the right color and drives well. Of course with big data and the internet of things and more and more intelligent software, there will be a high probability, that the software will be right, but still….
Even more frightening is the prospect of a software then self executing a contract on the base of a wrong information, lets say the software of the car manufacturer is not working properly, the code for pink color was mixed with blue. So the car, which ought to be blue is pink, but the software thinks, it is blue. The buyer does not pay, so the software self ecectues and for example, denies the buyer the use of his credit card. How can he convince the software of the obvious fact, that the car is not blue? How long will proceedings take and what can be done till a decision is been made?
All not unsolvable question, but a software, that can grant or deny access to certain objects will more probably be used for much darker objectives than smart contracts (but that won*t stop it’s development so we shall try to make the best of it).
So all in all, as a lawyer who tries to (semi) automize contracts myself I can see the use but also the dangers of such a technology (but there might be many other I can know not even think about)