Bueno... lo que te puedo decir es que el viewstate como lo mencionas guarda los valores de tu formulario cuando se hace un postback, así que cuando usarlo y cuando no eso depende de lo que estes haciendo... por ejemplo.. si llenas un datagrid y en esa misma página tienes otros controles que tambien vas a utilizar y ellos van a hacer tambien postback y los datos de tu grid no quieres que se pierdan pues lo pones en true.
Por otro lado cuando tus web controls que por lo regular están con la propiedad enableviewstate en true éstos cuando se hace la peticion los valores se guardaran en el state del cliente por lo que la carga de la página para la segunda petición será un poco más rápida.
Bueno.. esto es lo que te puedo decir de manera muy general..., así que ya será cosa tuya cuando usarlo y cuando no..
Saludos