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.