Hola
Sobre la primera pregunta, ese tipo de recursos no se bajan nuevamente, ya que el navegador las almacena para no tener que hacer justamente eso. Debes evitar como en cualquier página, el uso exagerado de imágenes (si es que las hay).
Sobre el segundo punto, es desabilitar el ViewState para los casos en los que no necesitas usarlo, en general debería estar deshabilitado, alternativamente a esto puedes ver la forma de guardar en algún otro medio medio (disco) y no enviar al cliente _pero al final todo tiene sus consecuencias_ en especial debes evitar viewstate del control DataGrid, que puede llegar a generar varios KB's de tamaño.
Debes almacenar en caché las páginas que no cambian constantemente o almacenar las partes estáticas de la página, para esto último necesitas que esas partes estáticas sean controles de usuario.
No abusar en el uso de variables de sesión, separación de la aplicación de preferencia en capas, manejar adecuadamente los recursos tales como acceso a ficheros, conexiones a base de datos, etc.
Asegurate que la aplicación esté compilada en modo Release (si es que no es así).
Te sugiero que le des una lectura al siguiente
libro, puedes desacargarlo gratuitamente desde ese sitio en formato pdf, te recomiendo la lectura del capítulo 6: "Improving ASP.NET Performance"
Saludos