The brief forms /@, and @@@ are not exactly equivalent to the full forms of these operations, and also f[x] is not exactly equivalent to either of f[#]&[x] or f @@ {x}.
I will mention two aspects of the problem, but there likely are more (of course, in addition to the precedence - related aspect, already extensively described in the linked past discussions).
Evaluation
Consider the following example:
Hold[Print[1]]
which evaluates trivially to itself. However, the other forms you mentioned:
Hold @@ {Print[1]}
or
Hold[#] & [Print[1]]
will lead to evaluation leaks (Print will be evaluated).
One can probably come up with some contrived examples of other differences of a similar kind, but generally it is enough to say that these forms define different evaluation routes, so with enough effort, we can generate all kinds of differences. It is another matter that for most practical cases, such differences either are not there or don't matter.
Heads option
The main point here is that the brief forms like f @@@ expr and f @@ expr are parsed as Apply[f,expr,{1}] and Apply[f,expr], respectively, and do not allow one to explicitly pass the Heads option. Therefore, they will always use the global value for this option. And, should anyone change that option globally, there may return different results (from what one would normally expect) - just as the equivalent literal forms I mentioned above do.
You can do the following experiment (make sure you don't have any unsaved work):
SetOptions[Apply, Heads -> True]
Then (taking this example from the help page for Apply):
f @@@ p[x][q[y]]
(* f[y][f[y]] *)
but the explicit literal form allows to pass the option explicitly:
Apply[f, p[x][q[y]], {1}, Heads -> False]
(* p[x][f[y]] *)
A similar situation is with Map and @@. I have described this in more detail here. Basically, you can't specify the Heads option when you use the short forms.
Note that resetting Heads option globally, as I did here, is strongly discouraged and can lead to disastrous consequences.
SetOptions[Apply, Heads -> False]
OwnValues. But I think, this observation actually does not clarify matters - the fact that the function in the first 3 cases is stored in a variable is of secondary significance, sinceFunction-s can be also used directly without being stored anywhere. – Leonid Shifrin Oct 10 '13 at 13:32@@) is often just used when it is convenient. For example if you first generate a list using Table and then want the elements of that list to be arguments of your function. Like inf@@Table[i,{i,3}]. Also sometimesApplyis used to circumvent attributes likeHoldAll. For example you can writeHold@@{1+2}, which evaluates toHold[3], which is not the same asHold[1+2]which just evaluates to itself. Some part of your question seems to be about notation, as two lines of code you suggest have the sameFullForm. Ah there is too much to this question I can't make a point :P – Jacob Akkerboom Oct 10 '13 at 13:34