Image Processing/ Computer Vision: How is separability of filters implemented?
Szeliski isn't saying what you think they're saying.

The vertical part of the separable filter is:
$$
\mathbf{v_2} = 1/4\begin{bmatrix}1\\2\\1\end{bmatrix}
$$
not
$$
\mathbf{v_1} = 1/2\begin{bmatrix}-1\\0\\1\end{bmatrix}.
$$

You can see this by defining:
$$
\mathbf{h}= 1/2\begin{bmatrix}-1&amp;0&amp;1\end{bmatrix}
$$
and looking at

$$ \mathbf{K_1} = \mathbf{v_1} \mathbf{h} = \begin{bmatrix} 1/4 &amp; 0 &amp; -1/4\\
0 &amp; 0 &amp; 0\\
-1/4 &amp; 0 &amp; 1/4
  \end{bmatrix}$$

and

$$ \mathbf{K_2} = \mathbf{v_2} \mathbf{h}= \begin{bmatrix} -1/8 &amp; 0 &amp; 1/8\\
-1/4 &amp; 0 &amp; 1/4\\
-1/8 &amp; 0 &amp; 1/8
  \end{bmatrix}$$

You can see this effect in the image I included in your question: the vertical edges are highlighted, but the horizontal ones disappear. This is because the $\mathbf{v_2}$ filter is a low-pass filter, not enhancing edges.