Pues me parece excelente que tengas interés por saber acerca de los mejores usos de esta plataforma.
Server.Transfer y Response.Redirect sirven exactamente para lo mismo como lo mencionaste ya, la única diferencia es que el primero no se muestra en el cliente en tanto que el segundo si, es decir, con transfer le dices al cliente, estás en una página x, cuando realmente está en una página y, con redirect le dices, te moví a la página x.
En cuanto al Server.Execute, la verdad es que lo he utilizado solo unas cuantas veces, cuando ha sido extrictamente necesario sacar un nombre de un archivo de una tabla en un proceso de decisión por ejemplo. Pero con un código bien estructurado, dudo que realmente necesites este tipo de ejecución dinámica de archivos, pues además hasta donde se, no hay manera de pasarle valores a un archivo ejecutado por este método, más acerca de esto me es imposible abundar.
Salu2,