Hola.
En este artículo se habla (entre otras cosas) sobre posibles problemas de licencia con Microsoft.
http://www.onlamp.com/pub/a/onlamp/2004/03/11/mono.html
En principio, parece ser que los problemas solo pueden aparecer con la conexión a las APIs que no forman parte del estándar registrado en ECMA para el .NET. Aunque comentan que Mono soporta las APIs de Microsoft, y APIs propias de Mono/Linux, para GTK, Apache, etc. ... Así que si Microsoft licencia algunas de las APIs utilizadas (no todas pueden serlo), simplemente habría que utilizar el equivalente Mono (que no seria compatible con el .NET de Microsoft), o pagar la licencia correspondiente.
A mi me parece que la gran alternativa al .NET es la plataforma Java. Aunque solo soporta un lenguaje, tienes muchos puntos en común con .NET.
Saludos.