I have just created an ASP.NET C# project and a virtual directory for it in IIS in (as far as I know) the normal way, but I am seeing very strange behavior that I have never see
I think IIS thinks your project is a 'ASP.NET site' whereas you and/or your VS.NET may think that you actually have a 'ASP.NET Web Application'. Hitting convert to web application on the project within VS.NET and ensuring you have a properly configured (see other comments) virtual directory on project in IIS, everything should work fine.
Reading your post & comments, I see contradictory comments (unless I am misreading)
You say:
"ASP.NET Web Application" requires compiled dlls when deployed, not the base .cs files.
Is the root cause conceptual confusion between what you want to use as a dev and what you are allowed to deploy by the customer?