The expressions your talking about, select different nodesets:-
.//*[@id='Passwd']
The '.' at the start inndicates that the processing will start from the current node.
The '*' is used for selecting all the element nodes descending from the current node with @id-attribute-value equal to 'Passwd'.
W.R.T to your first questions, if we don't use '.' (dot) at the beginning, then you will be basically selecting all element nodes with an @id-attribute-value equal to 'Passwd' from the entire document.
By adding '//*' in XPath you would be selecting all the element nodes from the entire document.
In case of the Gmail Password fields, .//*[@id='Passwd'] would select all the element nodes descending from the current node for which @id-attribute-value is equal to 'Passwd'. But, //child::input[@type='password'] would select all child-element nodes named input for which @type-attribute-values are equal to 'password'. The child:: axis prefix may be omitted, because it is the default behaviour.