Eigenvectors of real symmetric matrices are orthogonal (more discussion)
There are really three things going on here:
- Eigenvectors corresponding to distinct eigenvalues are all orthogonal.
- A symmetric matrix is diagonalizable whether it has distinct eigenvalues or not. @A.G. proved this just fine already.
- Given a subspace whose dimension is greater than $1$, one can choose a basis of the subspace consisting of orthogonal elements. This is usually proven constructively by applying Gram-Schmidt.
Thus, it is not the case that all pairs of non-parallel eigenvectors of every symmetric matrix are orthogonal to each other. Rather, one can choose an orthogonal basis such that the matrix is diagonal in that basis. Nonetheless, for a symmetric matrix with a repeated eigenvalue, one can also choose a non-orthogonal basis such that the matrix is diagonal in that basis.
Assume that for a symmetric matrix $A$ there exists a Jordan block for an eigenvalue $\lambda$ of size more than one, hence there exists at least two linear independent generalized eigenvectors, i.e. $By=x$ and $Bx=0$ where $B=A-\lambda I$. Estimate $x^TBy$. On one hand it is $0^Ty=0$, on other hand, it is $x^Tx=\|x\|^2$. It gives $x=0$ which is a contradiction with the vectors being linear independent. Hence all chains of generalized eigenvectors are of length one, i.e. they are eigenvectors for $A$.
Addendum: As @Ian correctly noticed, one has to add to the proof that the basis of the corresponding eigen-subspace for $\lambda$ can be chosen orthogonal.
An alternative approach to the proof (not using the inner-product method on the question you reference) is to use Schur's Theorem.
Schur's Theorem: Every square matrix $A$ has a factorization of the form $A=QTQ^{\ast}$ where $Q$ is a unitary matrix and $T$ is upper triangular.
Then, if $A$ is symmetric, $T$ must also be symmetric (and hence diagonal). The columns of $Q$ are the eigenvectors of $A$ (easy to check), $T$ contains the eigenvalues (easy to check), and since $Q$ is unitary, all the columns are orthonormal.