En realidad el archivo aspx y aspx.cs son el mismo en el momento que el codigo es compilado, pero para ti, los puedes manejar como dos archivos distintos, digamos que no es un include necesariamente, porque no estas incluyendo ningun codigo, sino tienes un "codigo detras" de tu capa de presentacion, pero bueno, esto solo es el concepto, lo importante es que mediante este metodo separas tu capa logica de la presentacion.
No te preocupes por si necesita o no estar compilado, el framework piensa eso por ti
Por supuesto si te creas tus archivos de clase, puedes llamarlos desde cualquier lado de tu aplicacion, como lo harias con VB 6.0 por ejemplo. Por eso decia que es una buena costumbre, en realidad creo que la mejor aproximacion es:
1. Diseno HTML -> archivo.aspx
2. Codigo solamente necesario para controlar tus eventos -> archivo.aspx.cs
3. Logica de tu aplicacion -> archivo.cs
Aunque ya nos estamos metiendo mucho a .NET en este topico, quizas tambien por ahi el maestrazo Rootk en el foro de .NET te lo podra explicar mejor!
Salu2,
P.D. Otra cosa, trata de utilizar Visual Studio .NET, te hace la tarea del codebehind mas amable, pues me parece que con Web Matrix tienes que compilar todo a pie, pero no me hagas mucho caso tampoco.