3. What are good general purpose cross-platform diagramming tools?
Don't know about general-purpose, but if you're looking for a
UML-specific tool umlet[1] is a good choice--it's lightweight and uses
a text-based notation. It feels a lot like wiki editing, as opposed to
some of the bigger tools that make you wade through dialog after
dialog to do something like adding a method.
ArgoUML is also kind of nice. Supposedly supports Python in it's list of
"Forward Engineering (code generation)" feature.
http://argouml.tigris.org/features.html
One of the Eclipse-based ones isn't bad, but I forget the name of it at
the moment.
http://en.wikipedia.org/wiki/List_of_Unified_Modeling_Language_tools#Open_Source