Ah, I think this discussion started from a misconception then. As far as I know, .NET does not easily let you consume arbitrary Python libraries from OCaml/F#, or vice versa. I don't see how it would. The two are wildly different - Python's object model is "everything is a hash table!", which is not the same as .NET's object. The way to think of this is that IronPython is really its own world on *top* of .NET; just the same for Jython and the JVM.
Practically speaking in this case too, Python has no facility to declare types even around interface boundaries, so everything you pass in or out would have to be represented in OCaml as PythonValue or something, with methods like get_int(), get_attribute()...yuck!
More generally the goal of .NET was not to somehow automagically make any arbitrary (particularly non-native as defined before) language X be able to use any language Y easily. The goal is more practical - sharing a garbage collector, JIT, and standard library. This enables a pattern where the core is programmed in the native system language (Java/C#), but those libraries can be consumed by other languages, for scripting, DSLs, templating, etc.
And that's the exact same thing the JVM provides, and really that the bytecode/JVM model has provided for over a decade. Don't get me wrong, .NET added a few things like tuples and continuations, but the two systems are much closer than they are different; the main differentiator in my opinion has mostly just been marketing (which is admittedly very important).
This is a good blog entry on this model:
http://ola-bini.blogspot.com/2008/06/fractal-programming.html