Just noticed using an [XmlRoot("MyRoot")] attribute on my webpart class in conjunction with a .webpart file (as opposed to a .dwp file) gives me this error when attempting to add the webpart to a page:
Incompatible Web Part markup detected. Use *.dwp Web Part XML instead of *.webpart Web Part XML.
Well I don't want to use *.dwp Web Part XML so I removed the XmlRoot attribute instead. I'm feeling wild, you see.
Beware the old doco: http://msdn.microsoft.com/en-us/library/dd584160(office.11).aspx