"proc a {a a} {puts $a} ; a 1 2" writes "1" to stdout. Generally, args with identical names are placeholders, but this result is weird. E.g. "foreach {a a} {1 2} {puts $a}" writes "2" to stdout, so, I would see "2" by the proc "a" too.
Anyway, the documentation should contain the correct behavior, I think.