Mono is a complete re-engineering of the .NET run-time, so theoretically it is as efficient on linux/mac as .NET on windows is. Mono runs c# executables directly, they don't need re-compiling.
I don't see how it can backfire, the majority of computer users run windows anyway. I don't know if you've tried to compile something like bitcoin/bitshares on linux from cold before, I have and it took me days to get each working correctly with the correct dependencies installed. .NET just makes all that go away.
The way it might backfire is M$ releases all but a few crucial portions of the .NET runtime into open source as a ploy to gain more widespread adoption. The licensing for that small but crucial part isn't so restrictive to prohibit adoption by all but the most ardent of open source fanatics. Then they change the licensing conditions and it becomes a big legal mess. Realistic? Perhaps not, but M$ has been known for decades as the king of proprietary, non-standards compliant, NIH business practices, and I am leery of them. Whether such a backfire scenario is likely I don't know, it really depends on how generous M$ is about turning .NET into an open source platform.
Javascript is one of my most favored of scripting languages. If I'm not mistaken it was originally created by Netscape, which in order to compete in the early browser wars M$ had to implement. However M$ initially opposed it becoming a standard, but adoption was so widespread that ECMAscript, which was essentially Javascript, became the standard which M$ was forced kicking and screaming to implement. I'm not sure about these days as much but in the past M$ has resisted supporting standards for web browser technologies and has been a thorn in the side of web devs since day 1.
I have attempted to compile the BitShares client on linux Mint 17 without success, but I only devoted 1 late evening back in October to the effort so I am certain when I attempt it again I will be able to identify and resolve the issue fairly quickly.
You are right however regarding the issues one must face when compiling from source. I've had very similar issues on Windows as well, tho I have no dev experience with .NET at all. It turned me off so much in it's early days and Java was much more mature, worked better and was cross platform so why bother with proprietary .NET?
That was then. It would be interesting to see an in depth comparison of today's Java & .NET platforms to see which is better or what the relative merits of each are.