.Net is extremely new, and in the world of APIs new is generally not a good thing
It is true, but IMHO the .NET will successor of java. The C# and java language, basic class libs are very similar. But the designers of java created many wrong decisions when java was born: no properties, no operator overloading, no databinding, AWT, etc. And some of this early decisions can't change without break the compatibility.

because they dont see many desktop apps (this is because of the swing issues i mentioned earlier)
Not only the swing. IMHO a biggest problem is a virtual machine. The .NET (and Mono) uses only one VM for every desktop applications. But every desktop java apps are uses their own runtime environment. The java 1.5 promised change, but now, after 1 years of 1.5 the most of java apps are use separated JVM.

And the biggest problem of desktop java is the future. IMHO if .NET will strong enought the running of desktop java apps will be uneasy on windows. And the 95% of desktop market is windows based. And IMHO in the near future the .NET will replace the flash on the client side. In this case the linux desktops without .NET support will dead.

if your making an enterprise webapp, chances are you will be using j2ee/oracle/*nix not .net/sqlserver/win2k3
At this moment. But IMHO it will change in the near future.

Last but not least, there are (currently) more people working with java for their day to day jobs then any other language.
It is true, but if you count the potential .NET developers you must count every Visual Basic, Delphi, (or maybe java :-)) and other programmers, not only the C# developers.