Yes, you're right. It's better to blindly do assignments and use code contracts to check the state after. Much cleaner. </sarcasm>
I remember when HN wasn't /.
The article tldr: Poor design is poor design.
Edit: Please, HN, do continue to prove my point. Idiots love their little echo chambers.