To IMHO záleží jen na vývojářích. Pokud už sáhnu po technologii, která funguje jen na jedné „straně“, měl bych vědět proč.
U aplikací, které jsou v .NETu běžně vyvíjeny, nebývá přenositelnost zrovna cílem. V zásadě proto, že to zákazník obvykle nepožaduje a nemá to tedy význam. Vývojář by si tím pouze mohl znepříjemnit život a vývoj by mohl zabrat více času, protože by se mohl dostat do situace, kdy nebude moci využít komponenty, s kterými je spokojený a nemůže za ně najít funkční náhradu. Musel by tedy vše psát od začátku (zmínka o znovuvynalézání kola je častá).
Brzdou v tomto ohledu jsou, podle mě, vývojáři oněch komponent, protože se chovaj naprosto stejně. Tj. neznepříjemňují si život vývojem pro MONO a občas se dokonce vážou na WinAPI. I když si to někteří už uvědomili, situace se výrazně nezmění, dokud MONO na linuxu nezaujme nějaké výraznější postavení (např. dokud se nestane součástí důležitějších distribucí). Se samotným vytvořením kompatibilních komponent už by takový problém být neměl (i když některé drobnosti stále nejsou doladěné a jiné ještě chvíli budou chybět).
BTW: Stejně tak aplikace napsaná pod MONem nemusí fungovat pod .NETem.