There are compatibility issues sometimes, I am not finding any with yours, also since CLR 2 is "compatibility" based and not native CLR 2 it can never be as fast as CLR 2 outside of the CLR 4 runtime its like expecting a Guest VM to be faster than its host.
People have "claimed" there "should" be no difference and there may not be any on small applications.
However, we have noticed this with our .Net 2 stuff as we are migrating to .Net 4 and because of the performance and compatibility issues we had running CLR2 stuff under CLR4. We however are not a small little app, we have a enterprise class application.
We decided to force a migration of everything we have in our next major release to be .Net 4 period instead of just a few parts. This increased or work load and will most likely effect our release date, but it had to be done to deal with the issue. I
looked and I couldn't find anything about others talking about this issue public but I have seen it with my own eyes. So there may not be many private company going out and talking about it for .Net Enterprise applications.
Also I do know that CLR4 apps in my testing seem to have better memory usage and a smaller memory footprint simply by switching from CLR2 or CLR4 with no code changes.
Also .Net 2.0 is going to be 6 years old this November so its just getting old, and people really need to move on. :) It taking us a long time to release this and finally make the jump.