I am not sure my question makes any sense. Google Wave is using HTML 5 and such. But if I have a desktop (say winforms) application, can I leverage google Wave for collaboration/discussion? Does it even make sense? If so, what's the API?
Yes you can once someone writes a library for .NET that supports the wave protocol.
Wave is really just an extension to XMPP (jabber, google talk, etc.), so it makes sense to have a thick client implementation at some point. Google of course, is pushing it as a web app.
I don't know of any implementations off of the top of my head, but I'm sure that someone somewhere is working on it.
Google has released a federation protocol that lets your write your own Wave servers and have them talk to Google's.
They also have embedding APIs that let you put your HTML content in Wave and put Wave in your HTML content.
Neither of these get you where you want, though, because the way that Google's in-browser Wave client and their Wave servers talk is still proprietary, and that's what you're looking for.
Your answer is "it doesn't even make sense". You'd be better off building your own chat support and then connecting it to Wave later on.
Answering my own question: There is a Java client: com.google.wave.api: http://wave-robot-java-client.googlecode.com/svn/trunk/doc/com/google/wave/api/package-tree.html
You could use the Robot API to write a messenger/relay robot. The robot might record all updates to the Waves to which it is subscribed, and then push the data to your desktop program. Similarly, the robot could respond to a Wave as a proxy for your Desktop client. This is not elegant, efficient, or future-proof. It might, however, satisfy your desires. This robot probably could be hack together in a two days or so, and updated as needed.
Once Google publishes the client/server protocols it will be much easier to write such a client.