Equation between bilinear mappings and total second derivative Some text first (my question will be related to it):

Book
Let $A \in \mathbb R^n$.
Let $L(\mathbb R^n, \mathbb R^m)$ denote the space of linear maps from $\mathbb R^n$ to $\mathbb R^m$. (If we choose a basis in in $\mathbb R^n$ and $\mathbb R^m$, then $L(\mathbb R^n, \mathbb R^m)$ can be identified with the $m \times n$ matrices and hence with $\mathbb R^{mn}$. Now $Df:A \to L(\mathbb R^n, \mathbb R^m)$; that is, at each $x_0 \in A$ we get a linear map $Df(x_0)$. If we differentiate $Df$ at $x_0$ we get a linear map $L(\mathbb R^n, L(\mathbb R^n, R^m))$ by definition of the derivative. We write $D(Df(x_0)) = D^2f(x_0)$. We define the map $B_{x_0}:\mathbb R^n \times \mathbb R^n \to \mathbb R^m$ by setting $B_{x_0}(x_1, x_2) = [D^2f(x_0)(x_1)](x_2)$ 
This makes sense because $D^2f(x_0):\mathbb R^n \to L(\mathbb R^n, \mathbb R^m)$ and so $D^2f(x_0)(x_1) \in L(\mathbb R^n, \mathbb R^m)$; therefore it can be applied to $x_2$. The reason we do this is that $B_{x_0}$ avoids the unnecessary use of the conceptually difficult space $L(\mathbb R^n, \mathbb R^m) \approx \mathbb R^{nm}$

fact
By definition, total derivative of a fucntion $f:\mathbb R^n \to \mathbb R^m$ is a linear map $L:\mathbb R^n \to \mathbb R^m$
Derivative of a linear mapping $L$ at $x_0$ is $DL(x_0) = L$:
$||L(x) - L(x_0) - DL(x_0)(x - x_0)|| \le \varepsilon ||x-x_0||$
$||L(x - x_0) - DL(x_0)(x - x_0)|| \le \varepsilon ||x - x_0||$
$||L - DL(x_0)|| \le \varepsilon$

I'll introduce some notation to make reasoning process clearer.
Let $Df|_{x_0}$ be total derivative of $f$ at $x_0$.
Let $L|_{x_0}(\mathbb R^n, \mathbb R^m)$ be exact point in $L(\mathbb R^n, \mathbb R^m)$. $x_0$ stands here for the fact that we came to $L|_{x_0}(\mathbb R^n, \mathbb R^m)$ from elsewhere by passing $x_0$ as an argument, or applying a transformation to $x_0$ in that 'elsewhere'(just to backtrace the point in $L(\mathbb R^n, \mathbb R^m)$
Now
$Df:\mathbb R^n \to L(\mathbb R^n, \mathbb R^m)$ (1)
$Df|_{x_0} = L|_{x_0}(\mathbb R^n, \mathbb R^m)$ (2)
$D(Df) = D^2f: \mathbb R^n \to L(\mathbb R^n, L(\mathbb R^n, \mathbb R^m))$ (3)
$D(Df)|_{x_0} = D^2f|_{x_0}: L|_{x_0}(\mathbb R^n, L(\mathbb R^n, \mathbb R^m))$ (4)
Now we can obtain second derivative 
I see why 
$B_{x_0}(x_1, x_2) = [D^2f(x_0)(x_1)](x_2)$, but


*

*What means $[D^2f(x_0)(x_1)]$ - differentiate at $x_0$ first, then at $x_1$? if so, then
1a) why would we need to calculate derivative at $x_0$ and then calculate derivative of this derivative at $x_1$ - what are the practical cases? Technically, this is possible to do, as linear map is a function as well, and we can take its derivative at any point, but
1b) $D^2$ can be calculated only at one point(namely $x_0$), if we use (3). But we can do $D|_{x_0}$, then $D(D|_{x_0})|_{x_1}$, or we can't? Is it a contradiction? if not, what i'm missing in (3) or in calculating $D$ at $x_0$ first, then taking derivative of $D|_{x_0}$ at $x_1$?

*If we calculate D^2 using (3), it consumes $x_0$ and gives us $L|_{x_0}(\mathbb R^n, L(\mathbb R^n, \mathbb R^m))$, but if we do $D(D|_{x_0})|_{x_1}$, we get
$D(Df|_{x_0} = L|_{x_0})|_{x_1} = D(L|_{x_0}(x))|_{x_1} = L|_{x_0}$, even no matter which point we do derivation second time - it maybe any $x_i$, result would be the same: $L|_{x_0}$. But this doesn't seem right to me. I definitely messed up something. But what?

*Do we first differentiate twice, then substitute exact value, or diff-subs-diff-subs?
 A: If $f:\Bbb R^n \to \Bbb R^m$, then $Df:\Bbb R^n \to L(\Bbb R^n,\Bbb R^m)$, and $D^2f: \Bbb R^n \to L(\Bbb R^n, L(\Bbb R^n,\Bbb R^m))$. In other words: for any $x \in \Bbb R^n$, $D^2 f(x)$ is a linear map from $\Bbb R^n \to L(\Bbb R^n, \Bbb R^m)$. So, for any $y \in \Bbb R^n$, $[D^2 f(x)](y) = D^2 f(x)(y)$ is an element of $L(\Bbb R^n, \Bbb R^m)$.  So, for any $z \in \Bbb R^n$, $[[D^2 f(x)](y)](z) = D^2 f(x)(y)(z)$ is an element of $\Bbb R^m$.
So, to directly answer question 1: $D^2 f(x_0)$ is the derivative of $f$ at $x_0$. The output of this map is a linear map $\Bbb R^n$ to $L(\Bbb R^n, \Bbb R^m)$. $D^2f(x_0)(x_1)$ is the result of applying $D^2 f(x_0)$ to $x_1$. $D^2 f(x_0)(x_1)$ is a linear map from $\Bbb R^n$ to $\Bbb R^m$.  There is only one point $x_0$ at which we compute a derivative.

An example would probably be helpful. Suppose that $f: \Bbb R^n \to \Bbb R$ (i.e. we take $m = 1$). The first derivative is a map $Df: \Bbb R^n \to L(\Bbb R^n,\Bbb R)$, which we can think of as the gradient of $f$. The second derivative is a map $D^2 f : \Bbb R^n \to L(\Bbb R^n, L(\Bbb R^n, \Bbb R))$, which we can think of as the Hessian.
Concretely, suppose that $n = 2$. The Hessian matrix is given by
$$
H(x) = \pmatrix{\frac{\partial^2 f}{\partial x_1^2}(x) & 
\frac{\partial^2 f}{\partial x_1 \partial x_2}(x)\\
\frac{\partial^2 f}{\partial x_2 \partial x_1}(x) & \frac{\partial^2 f}{\partial x_2^2}(x)}
$$
where $x = (x_1,x_2) \in \Bbb R^2$. For any $y \in \Bbb R^2$, the map $D^2 f(x)(y)$ is the linear map whose matrix is $y^T H(x)$.  That is, for any $z \in \Bbb R^2$, $[D^2 f (x)](y)(z)$ is equal to $y^T H(x) z$.
