See, this is where your lack of C++ knowledge lets you down
C++ is strongly typed. The compiler cannot 'choose' a type for you, each rvalue has a specific type, and hence using auto simply eliminates some keyboard action.
The standard case will be for turning something like this:
std::vector<std::map<std::string,std::pair<std::string, std::string>>> the_list;
for (std::vector<std::map<std::string,std::pair<std::string, std::string>>>::const_iterator i = the_list.begin(), e = the_list.end(); i != e; ++i) ;
into something like this:
std::vector<std::map<std::string,std::pair<std::string, std::string>>> the_list;
for (auto& i: the_list) ;
Does that reduce the readability? Really? (Ok, so a list of maps of string -> (string, string) is not a typical data structure, but I've seen far worse in stl-hell)
There can be no chance of implicit type conversion either - in fact, I can think of several times over the years where using an auto type would have prevented some incorrect implicit type conversions.
You may not use C++, but I do on a daily basis, and C++0x is pure win.
PS: Do you not have standard 'hit by bus' policies at your work? All our stuff has to survive a weekend of several fatalities...