CSS class name obfuscation only happen in CssResource; and a <ui:style> in a UiBinder template is a form of CssResource.
So only case "1" in your list would use an obfuscated class name, because 'style' references (by default) a <ui:style>, i.e. a CssResource; {xx} would use the value of xx (any @UiField named 'xx' in your class, and/or anything with a field="xx" in your ui.xml), and setStyleName uses the argument give verbatim.