Minecraft is written in Java. There were games written in (at least partially) Haskell/Erlang/Ruby/Lisp. Unity3D is based on C#, etc. If tradeoffs are worth it, they'll do it.
We already have indie / casual games on Linux. That's not enough to make Linux a legitimate platform.
The actual gameplay is often implemented using scripting. For example, with Unity you write games in C# (with Mono) using their engine, and it's still fast enough to work on cellphones.
Unless someone finds a way to get Next-Gen 3d Engines to run in a VM without a performance hit of even 1%, its not going to happen.
And, as is well known, simply the existence and theoretical threat of a plan B (in Gabe's case, Linux) ensures a much better negotiation position and a better (more fair?) plan A.
Not everyone does AAA games.
If you need to interact with Android, all APIs are done via JNI and certain audio APIs have only Java APIs available.
A huge installed user base like Android maximizes one variable so much that the other gets a free pass.