Creo que yo estoy más puesto.
Por un lado, FreePascal no tiene ninguna compatibilidad con .NET ni con Mono. Al menos, no en la última versión estable y no sé si tienen pensado compatibilizar, aunque es posible que lo hagan ya que es un compilador muy flexible (soporta infinidad de procesadores: Intel, PowerPC, Motorola, Texas Instruments, Zylog...). En cuanto a su compatibilidad con Delphi/Kylix está todavía un pelín verde y hay muchas cosas que no funcionan igual (por ejemplo, el uso de cadenas de caracteres STRING es muy diferente).
Por otro lado, Mono utiliza compiladores
estilo GNU, entre los que está GNU/Pascal. Yo he utilizado este último y la verdad es que es bastante mediocre en cuanto al uso de clases y objetos (FreePascal es más maduro) y su compatibilidad con Delphi es prácticamente inexistente. Eso sí, soporta la norma del Pascal ISO a rajatabla, cosa que ni Delphi ni FreePascal hacen. Tal vez por eso no sea compatible...
La verdad es que las cosas no pintan muy bien.
En lo de Java no me meto, porque es un lenguaje que aborrezco, igual que a C++, así que sólo le sacaría cosas malas.