I think that in reality, what we can name as a vector or covector is just how they transform under the Jacobian matrix. What we call a covariant basis (basis vector) and a contravariant basis (basis covector) are in the first place, a row "vector" or a $1 \times n$ matrix of "something", and in the second case, a column "vector" or a $n \times 1$ matrix of "something", where in both cases, that "something" is not a scalar.
For the case of the partial derivative ${\partial \vec R\over \partial x_i}$, as the basis vector $e_i$ of the curve $\vec R$, it goes like this:
First, the derivative of a $\vec R$ is a tangent vector $d\vec R(t)/dt$. By the chain rule:
$$ {d\vec R\over\partial t} = {\partial\vec R\over\partial x_i}{dx_i\over dt}$$
and a vector $\vec v$ can be expanded as linear combinantion of $e_i$, where $v^i$ are scalars:
$$ \vec v = v^ie_i$$
Now, how we $d\vec R\over\partial t$ is a vector, it can be expand as:
$$ {d\vec R\over\partial t} = v^ie_i$$
$$ v^ie_i = {\partial\vec R\over\partial x_i}{dx_i\over dt}$$
How ${\partial\vec R\over\partial x_i}$ are vectors, and can be proven that they are tangent to the "grid" of the coordinate system, they can be re-interpreted as the "basis vectors" of ${d\vec R\over\partial t}$, so:
$$ {\partial\vec R\over\partial x_i} = e_i$$
$$ {dx_i\over dt} = v^i$$
Now we know that ${\partial\vec R\over\partial x_i}$ is the basis vector, we ask what happend if we change the basis. For $\vec v$ in the new basis $\hat e_j$, we expand it using the chain rule for partial derivatives:
$$ \hat e_j = {\partial \vec R\over\partial \hat x_j} = {\partial \vec R\over\partial x_i} {\partial x_i\over\partial \hat x_j}$$
$$\hat e_j = e_i{\partial x_i\over\partial \hat x_j}$$
Using matrix notation, the change of basis ocurr as:
$${\begin{bmatrix}e_1 & \cdots & e_n \end{bmatrix}}
{\begin{bmatrix}
{\partial x_1\over\partial x_1} & \cdots & \partial x_1\over\partial {\hat x_n} \\
\vdots & \ddots & \vdots \\
{\partial x_n\over\partial \hat x_1} & \cdots & \partial x_n\over\partial \hat x_n \\
\end{bmatrix}}
= {\begin{bmatrix} \hat e_1 & \cdots & \hat e_n \end{bmatrix}}$$
and ${\partial x_i\over\partial \hat x_j}$ are the entries of the Jacobian matrix.
$$ $$
Now, for the second case; using the chain rule of differentials:
$$ df = {\partial f\over\partial x_i}{dx_i}$$
we can expand the term ${\partial f\over\partial x_i}$ using the chain rule for partial derivative:
$$ {\partial f\over\partial x_i} = {\partial f\over\partial \hat x_j}{{\partial \hat x_j\over\partial x_i}}$$
and using in the chain rule for differentials:
$$ df = {\partial f\over\partial x_i}{dx_i} = {\partial f\over\partial \hat x_j}{\partial \hat x_j\over\partial x_i} dx_i$$
Note that ${\partial f\over\partial \hat x_j}$ is a partial derivative of the coordinate $\hat x_j$, not $x_i$; but how we are talking of vector and covector, which are invariant of the coordinate system, we have that $df$ in the $\hat x_j$ coordinates is:
$$ df = {\partial f\over \partial \hat x_j} d\hat x_j = {\partial f\over\partial \hat x_j}{\partial \hat x_j\over\partial x_i} dx_i$$
$${\partial f\over \partial \hat x_j} d\hat x_j = {\partial f\over\partial \hat x_j}{\partial \hat x_j\over\partial x_i} dx_i$$
diving in both size by $\partial f\over\partial \hat x_j$ ...
$$ d\hat x_j = {\partial \hat x_j\over\partial x_i} dx_i$$
and writing in matrix form is:
$$
{\begin{bmatrix}
{\partial x_1\over\partial x_1} & \cdots & \partial x_1\over\partial {\hat x_n} \\
\vdots & \ddots & \vdots \\
{\partial x_n\over\partial \hat x_1} & \cdots & \partial x_n\over\partial \hat x_n \\
\end{bmatrix}}{\begin{bmatrix}dx_1 \\ \cdots \\ dx_n \end{bmatrix}}
= {\begin{bmatrix} d\hat x_1 \\ \cdots \\ d\hat x_n \end{bmatrix}}$$
which indicates two things:
- like the term $\partial x_i \over \partial \hat x_j$ correspond to the entries of the Jacobian matrix, the term $\partial \hat x_j \over \partial x_i$ correspond to the entries of the Inverse Jacobian matrix, because expanding $\partial x_i \over \partial x_k$ using the chain rule for partial derivatives is:
$$ {\partial x_i \over \partial x_k} = {\partial x_i \over \partial \hat x_j}{\partial \hat x_j \over \partial x_k}$$
and are the entries of matrix multiplication $J^{-1}\times J$. When $i = k$, the expansion above is $ {\partial x_i \over \partial x_k} = 1$; and when $i \neq k$, $ {\partial x_i \over \partial x_k} = 0$, because the basis are orthogonal to each other, so:
$$ {\partial x_i \over \partial \hat x_j}{\partial \hat x_j \over \partial x_k} = \delta^i_k$$
where $\delta^i_k $ (Kronecker's delta) are the entries of the identity matrix.
- Differentials are contravarient because they transform in the opposite way of basis vector, so they can form a contravarient basis, that is to say, a covector basis.