Why sine wave leakage in FFT spectrum
Yes, we use windows to reduce spectral leakage and you show an example where using a window increases it.

There is more than one way to explain it. 

If you express a DFT as a matrix vector product 

$$ \mathbf{y}=\mathbf{Wx}
$$
where 
$$
\mathbf{WW^H}=c\mathbf{I}
$$
where $c$ is a constant that depends on how you define your DFT. The point is that $\mathbf{W}$ is an orthogonal matrix. Your 3 original sine waves correspond to 3 rows of $\mathbf{W}$. Your 3 sines are perpendicular to all the other $N-3$ rows, so there is no leakage.

When you uses a window like a Hamming Window, it’s equivalent to multiplying each row element by element by the window. This modified matrix $\mathbf{\tilde{W}}$ isn’t orthogonal any more.
$$
\mathbf{\tilde{W}\tilde{W}^H}\ne c \mathbf{I}
$$
The resulting matrix is nearly equal to a constant times $\mathbf{I}$ but the off diagonals are nonzero.  Your 3 original sines now project on all the rows of $\mathbf{\tilde{W}}$. These nonzero projections are another way to say leakage.

The nonorthogonality of the widowed matrix is easy to verify in matlab using the dftmtx command.