Ir es solo otro lenguaje imperativo que todavía está en pañales. A partir de ahora, Go no tiene genéricos. Además, no hay soporte para programación funcional.
C# es un lenguaje OO/imperativo con muy poco soporte para programación funcional. Tiene genéricos. La versión actual no admite las anotaciones de Covarianza y Contravarianza (aunque están planificadas para la próxima versión del idioma).
Scala es un lenguaje híbrido que intenta combinar lo mejor de ambos mundos (es decir, OO y funcional) en un idioma. Como se puede ver en la siguiente figura (Fuente: http://james-iry.blogspot.com/2010/05/types-la-chart.html), Scala tiene un sistema de archivos muy sofisticado, algo que tanto C# como Go carecen.
alt text http://www.pogofish.com/types.png
Así featurewise, Scala es la lengua más rica en características (considerando tanto OO y características funcionales) de los tres. C# proporciona algunas construcciones funcionales pero no está cerca de Scala. Y la comparación de IMO Ir con Scala/C# es como comparar el carro de bueyes con un Lamborghini.
En Wikipedia, la primera frase es "Scala es un lenguaje de programación multi-paradigmático ..." Así que, como dices, te permite escribir un código "funcional" típico pero no hay nada de malo si prefieres un estilo imperativo. Y estoy de acuerdo, el verdadero nombre de Go es C2. –