Back from a relaxing weekend.... Scott Hanselman has posted a rejoinder on his .NET purity stuff about which I had blogged sometime back..The problem is that there seems to be two issues here.
1. If you are writing application programs - .NET purity may make sense
2. When you write low level components or something like the framework library - .NET purity does not usually make sense
If you are writing applications I think, 100% .NET purity does help. It makes your code more portable and also more stable(yeah all that GC stuff). Your code can call a library that in turn does Pinvoke, but then that is the responsiblity of the libraries author. I am more concered on what I need to write.
Ok, let me put it this way. I write a Winform app. The winform .NET BCL does a lot of Pinvoke for the GDI stuff. But as long as there is a Winform class in Mono(which I think is well on the way of being there), my app will work fine on Linux, unless I do explicit PInvokes to the Windows GDI API calls.
When you are doing the second task, .NET purity makes no sense and you will be forced to use OS level calls is you want to take advantage of the OS features.