What options exist for a good obfuscator tool for .NET which propertly support WPF in .NET 4.0?
In particular, which obfuscation tools handle rewriting of BAML withi
Well WPF depends heavily on Reflection and changing your property names may not work correctly as binding will not function correctly. Obfuscator tools will not detect string references in code that may be there inside your ViewModel and so on. And whatever you do. Tools like Blend can anyway create copy of templates and styles from BAML and that is the reason BAML was introduced instead of creating executable code from xaml.
And as it is BAML is just a graphical representation, at runtime people can also use Snoop tools to identify your runtime view of controls.
However, there is a free tool which generates WPF code behind file as a pure CLR object graph representation instead of BAML, http://xamlgenerator.codeplex.com/ (Disclaimer: this xamlgenerator is free tool created by my company)