Uh, I'm at least 70% confident that Gödel's incompleteness theorem applies to sufficiently strong systems of integer arithmetic, and extensions to those, and doesn't need real numbers.
That being said, saying it can't be bulletproof or watertight is too vague.
There is both a first and a second Gödel's incompleteness theorem.
The first shows that a system T which can do arithmetic has some statements that it can express, and which are 'true' , but which cannot be proven to be true by T.
The second shows that a system T which can do arithmetic cannot show that it is self consistent, unless it is not self consistent.
Neither of these seem to be a problem for smart contracts.
It is possible for a system to be self consistent. The smart contract or the system that the smart contract uses does not need to prove itself to be self consistent, so the second theorem is not a problem.
If there is some mathematical statement that can be expressed by the system that the smart contracts use, which the system cannot prove whether it is true or false, this is also not a problem. Which, Ethereum doesn't even have a proof checking thing built into it yet, so I don't see how this would be applicable.
I think that you are probably over-applying Gödel's incompleteness theorems.
Also, I don't think its so much complexity in the "wow these laws are complicated" sense, so much as "strength" in the "how many things can be talked about / shown to be true" sense.
You /might/ be able to do some weird program/proof analogy there, but I really don't think that applying it to law (by a law/program analogy) would really show all that much.
I would think that the law can be understood as being sort of like a function (these inputs result in these outputs), and a function can be both be complicated and total. The law doesn't really do much with formal proofs, as it is now anyway.
Keep in mind that there is also a Gödel's COMPLETENESS theorem.