Can we write the directional derivative $D_v f$ as $v[df]$? Let $M$ be a smooth manifold and $f \in M \rightarrow \mathbb{R}$ be a scalar function. Let also $p \in M$ and $v \in T_pM$. Finally, let $D_v f(p) = \frac{df(\gamma_v(t))}{dt} \vert_{t=0} = \lim_{t \rightarrow 0} \frac{f(\gamma_v(t)) - f(p)}{t}$ (where $\gamma_v$ is any curve such that $\gamma_v(0)=p$ and $\gamma'_v(0) = v$) be the directional derivative of $f$ at $p$ in the direction of $v$.
It is understood that the directional derivative above can be thought of as either the $1$-form $df$ acting on $v$ or the vector field $v$ acting on $f$ (where in the latter case we identify $v$ with the operator $v^i \frac{\partial}{\partial x^i}$). Formally:
$$df \cdot v = v(f) = D_v f$$
This nearly creates a perfect symmetry between vector and covector fields. What seems to break the symmetry for me, is the notation. For instance why don't we usually see $v[df]$ on top of $v(f)$? More precisely, since there is nothing wrong with the way $v(f)$ is defined, why can't we also define a different action of $v$ (this time on $V^*$ instead of M $\rightarrow \mathbb{R}$) by using the standard isomorphism $\phi: V \rightarrow V^{**}$  that has the property $\phi(v)(\alpha) = \alpha(v)$ for all $\alpha$ in $V^*$. That way we could define $v[df]:= \phi(v)(df) = df \cdot v$ and conclude:
$$df \cdot v = v[df] = v(f) = D_v f$$
What I have in mind is that vectors are $(1,0)$ tensors or equivalently linear functionals acting on covectors (namely elements of $V^* \rightarrow \mathbb{R}$ that "eat" covectors and spit out real numbers). The issue here is that $df \in V^*$ while $f$ is not.
Is there anything wrong with that line of thinking above? If not, what are the merits of the (seemingly) less symmetrical - and yet predominant in the literature - notation?
 A: I think it boils down to if one prefers to view a vector as an element of
$\mathbb R^n$ or as a derivation that acts on functions at some $p\in M\,.$ We know that differential geometers don't make a difference between the two. Nevertheless, just to make this answer clearer, I shall write $\boldsymbol{v}$ for the former and $V$ for the latter:
\begin{align}
\boldsymbol{v}=(v^1,...,v^n)^\top\,,\quad\quad V|_p=v^i\partial_i|_p\,.
\end{align}
As we know, $df=\partial_i f\,dx^i$ and (in traditional notation)
$$
df\cdot \boldsymbol{v}=v^i\partial_if=V(f)\,.
$$
Putting back the $p$ that was omitted for brevity we get a number in $\mathbb R:$
$$
df(p)\cdot\boldsymbol{v}=v^i\,\partial_i|_pf=V|_p(f)\,.
$$
The dot product on the left means that we contract the components of $df(p)\,,$ namely the covector $\partial_i|_pf$ with the components of $\boldsymbol{v}$ (the numbers $v^i$).
The term on the far right means that we apply the vector field
$$
V=v^i\partial_i
$$
to $f$ and evaluate this at $p\,.$ Both interpretations lead to the same expression in the middle.
There is also nothing wrong with the notation $\boldsymbol{v}[df]$ because $\boldsymbol{v}[df(p)]$ is the pairing of the vector $\boldsymbol{v}=(v^1,...,v^n)^\top$ with its dual $(\partial_1|_pf,...,\partial_n|_pf)\,.$
All of the above is still valid when the components of $\boldsymbol{v}$ and $V$ depend on $p\,.$
