The user (via their user-agent) should be in complete control of autocomplete, and sites that think otherwise are broken. Mechanisms to specify the semantic nature of a field are great; by all means, make it easy for a user-agent to know what to fill in. But "autocomplete=off" was originally invented because a few large sites (archaic bank sites of the same type that did browser detection and rejected any browser they didn't recognize) wanted to prevent users from using their browser to remember their password. That's not something the site should have control over.
Ignoring "off" isn't so bad, though it could be smarter. Ignoring everything a site says about the nature of a field is awful. I shouldn't have to resort to weird hacks to get chrome to stop picking a random field on a form and pretending it's a username.