Since assert would consume all gas and require would return all gas, Is there any reason to use assert not require? Use require to refund gas seems always a better choice than consuming them?
I saw some explanation in Difference between require and assert and the difference between revert and throw but I still don't get it, why choosing a command that consuming all gas, any benefit?