To be explicit - you have .NET Framework 1.0, 1.1, and 2.0
*installed* simultaneously on your machine. Is that correct?
Yes. And, this is, by design, not a problem.
And the Visual Studio.NET will also choose which of the
installed versions of .NET Framework to use?
Well, not quite. The version of VS.NET you have dictates what Framework
version will be used:
VS .NET 2002 = 1.0 Framework
VS .NET 2003 = 1.1 Framework
VS .NET 2005 = 2.0 Framework
If (and that is a big IF), you wanted to use VS .NET 2003 to build a project
that could run under the 1.0 Framework (not the norm), you could (emphasize
could) via the project's properties, set the target Framework to 1.0 instead
of 1.1, but the situations where you would want to do this would be rare.
And, supposedly, a C# app developed with Framework 1.0
would indicate to the CLR or Just-in-Time compiler that it should
be compiled/run with Framework 1.0, and the JIT will choose
that version of Framework to do its compiling?
Not quite. Each version of the Framework has its own CLR & JIT Compiler and
the CLR is part of the Framework. It is not independant of it. An
application compiled by a specific compiler version (compilers are also part
of the framework) knows what version compiled it. It isn't up the CLR to
decide which version to use, the application itself knows what version it
needs based on the assembly references it was built with.