Pardon my ignorance if this topic has been covered before, but I've done some homework and found that both Microsoft .Net CF 2.0 and 3.5 should be included in your ROMs. the reason being is that logically thinking, .Net CF 3.5 is just an upgrade and increases compatibility and performance, building upon 2.0. Well, yes and no.
This is a case not very dissimilar to how older nVidia Forceware/Detonator drivers work better for older generation cards and thus should no be upgraded. It is also to my understanding that TouchFLO 3D and all supporting hardware acceleration drivers were built using .Net 2.0, keeping backwards compatibility in mind. While the argument may be that 3.5 surely improves performance on these drivers and applications, it just isn't true. This is Microsoft we're talking about here. they love to half-*** compatibility
(gotta give them props in Windows 7 though, the new compatibility Troubleshooter/mode is done right) and
I found the strongest evidence in the stock Sprint (and possibly other) ROMs where they don't even include .Net 3.5. I wondered why.
I've been researching pretty heavily into MSDN Windows CE development documentation and find that the DirectX implementation in Windows mobile is HEAVILY dependent on the .Net framework. Now to put two and two together, it is highly probable that our Imageon D3D drivers were optimized and compiled for .Net CF 2.0. What does this mean? Using .Net 3.5 exclusively reduces performance all-around because we're essentially running our graphics in a quasi-compatibility mode.
Now here comes another problem. How do we get what to work with what? Well, Microsoft didn't make it easy for both developer nor user. They made us this little tool:
Power Toys for .NET Compact Framework 3.5 cabified version (I think!)
Here
They allow you to modify what uses what.
Again, I could be waaaay of-base and crazy, but at least I tried to help. Correct me if I'm missing something here.