Those 2 are Pure Functions with 1 parameter. This is the 3rd in MMA Help you did not show. # + 3 & [x]. To answer your question, I think?
(1) Pure functions are anonymous ones, like Scheme. (2) (Why do this?) This means you can use inline and unnamed.
(3A) What was special about your above observations? The parameters can be unnamed, too. (3B) That is why, you would prefer #, or #1, or ##, slot specifications, over just a symbol named 'u'.
(4A) # a slot specifier takes allocation. When done, it goes away. (4B) When you name it 'u' that becomes an allocation & active symbol name. (4C) If you had a program body and named a variable 'u' problems likely to occur?
There is my ten cents opinion.