I tend to use ViewState in most of my web applications, but when it comes to web sites there's rarely a need for them across all pages. In fact for some sites it can be switched off altogether.
However, even setting this in the web.config as so
<pages enableSessionState="false" enableViewState="false">
when you View Source there's still a __VIEWSTATE hidden input field.
Expected behaviour - as documented
here.