Why is there a mismatch between normalized cross-correlation and perception for basic waveforms?
Sawtooth: 

Even and odd harmonics, falling off at 1/n 

Square: 

Odd harmonics only, falling off at 1/n

Triangle: 

Odd harmonics only, falling off at 1/n2



So while triangle and square have the same set of frequencies present, the spectral envelope of sawtooth and square is more similar, with much stronger high frequency harmonics.  Triangle waves are simpler/closer to a sine wave.

(Also, if you're generating them digitally, it's uncommon for them to be bandlimited, which produces worse aliasing artifacts with the square and sawtooth than with the triangle.  This would be most audible with frequency sweeps or high fundamental frequencies.)