You are quite right: $f$ by itself should denote a function, $f(x)$ by itself should denote the element in the codomain of $f$ (in this case, the real number) that results when you evaluate $f$ on the element $x$ of its domain, where $x$ should previously have been defined.
However, this rule is honored as much in the breach as the observance: there are many situations where it is convenient to break it. When defining a function by a formula, it's hard to avoid a dummy variable, and so one likes to say "let $f(x)=e^{-x}$" instead of the more correct but awkward "let $f$ be the function $x \mapsto e^{-x}$". In particular, with functions that have multi-letter symbols like $\sin$, I find that people generally prefer to avoid writing them without an argument like $\sin x$. One does not like to talk about $\sin$ as a function in itself, so instead of writing something like $\sin'' = -\sin$, one would rather say "if $f(x)=\sin x$, then $f'' = -f$".
An alternative to a dummy variable that's sometimes used is a dot: $\cdot$. People sometimes write "let $f=g(\cdot + 5)$" to avoid the less correct "let $f(x)=g(x+5)$".
When working with functions of several variables, using dummy variables often helps keep track of which variable is which. One often writes something like: "let $u(x,t)$ be a solution of the heat equation $\frac{\partial u}{\partial t} - \frac{\partial^2 u}{\partial x^2} = 0$". Of course, one is really talking about the function $u$ and not any particular real number of the form $u(x,t)$, but it would be much more awkward to write otherwise. It also reminds you that the first argument of $u$ should be interepreted as space and the second one as time.
In short: mathematicians are not compilers. Written mathematics has some syntax rules, but they are not quite hard-and-fast, and need not be followed at the expense of clarity.