I think it's because ASPX pages are compiled on the fly, whereas executables and libraries are compiled by their corresponding compilers, csc.exe in C#'s case.

I guess technically someone could write a compiler that puts VB and C# together, but that'd defeat .NET's goal of being language independent, since that compiler would have to accomodate for every language out there.

There's more than 50 .NET languages out there right now, and ASPX supports only two of them.

It's just modularity on a different level, ASPX being arguably more practical but definitely less holistic.