This may look like a good solution at first, but think about it:
Security patches have to be applied to each instance on a machine. This will make maintenance harder if not impossible to perform, with all the security risks involved.
Everyone is creating his own instance, costing extra harddrive space. Each instance will require its own set of runtime files, costing more diskspace than a single installation.
The download of your application gets larger. Now people get their .NET installation mostly from windows update, which I think is great, because that way I don't have to deliver it with my application. If you distribute your own instance with your software
it will only make your installation harder to deploy, as the installation package gets larger. Moreover, you can get all kinds of problems with the installation of your specific instance that you don't have with a normal .NET installation.
There is also the problem of the GAC. You could go with a GAC for each instance, but it would require you to register assemblies of third party frameworks in every single available GAC for each instance. You could argue that you don't need most of the stuff
that is registered, but I know for a fact that there are a lot of people out there that make use of third party assemblies that are installed in the GAC.
For example: Enterprise library, install seperately and reuse for several applications.
There are more problems with this than what it is worth in the end. At least that is my opinion.