Standard assertions certainly are better than keeping the little proofs only in your head.

Many Design-by-Contract implementations are nicer than standard assertions because they help to express intent better and easily refer to the 'old' value of a parameter to verify desired results.