I see … I never realized that eig() function doesn’t have this guarantee. 
I think the reason leads me to this false prior that the eigenvectors returned by  torch.eig() are orthonormal is that the eig() function in both numpy and matlab has this property. And that’s why in a lot of cases I use eig() and eigh() interchangeably when the matrix is Hermitian.
Anyway, this gives me a significant message and I will think twice before choosing between them in the future.