I don't like decisions like implicit << and >> for cin, cout. Too much magic for me.
(cout "hello") confuses the hell out of those with some C++ experience. It changes semantics if a known object for little gain (cout is callable, a statement)? Like someone else said, a "printout" new statement or function would be better.
It's the kind of things that makes me question the design of the whole language.
Don't think that one is actually needed, simple static analysis should be able to tell one variable is just an alias of another -- which (presumably) they already do to figure out the variable types.
The reasoning behind it is also kind of confusing, used to tell the preprocessor the variable is in local scope as opposed to...?
--edit--
Or maybe it's used for class local variables?
Problem solved (at least partially) in other languages by requesting the `this` or `self` to be explicitly mentioned.