Why do we need orthogonality for FSK carriers?
FSK is frequency Shift Keying, a fancy way of saying the data is transmitted by frequency modulating a fixed carrier frequency. But this is not the same as FM. In FSK the shift is in discrete steps above and below the carrier frequency.

In the center point is the main carrier frequency, which is xtal/PLL controlled. The data can increase or reduce this frequency (modulation) either in analog form (FM), of phase shifting or frequency shifting above and below the center line on a vector scope, which represents the main carrier.

Quoted From Wikipedia/Orthogonality:


  Euclidean vector spaces. In Euclidean space, two vectors are
  orthogonal if and only if their dot product is zero, i.e. they make an
  angle of 90° (π/2 radians), or one of the vectors is zero. Hence
  orthogonality of vectors is an extension of the concept of
  perpendicular vectors to spaces of any dimension.


That is your orthogonal part. The DSP engine counts on a balanced 'orthogonal' approach to lock onto the carrier frequency. If you shift 5% above the carrier to represent a logic'1', you must shift 5% below the carrier to represent a logic '0'. These shifts must have a mirror image 90 degrees out of phase to be valid data, separate from the carrier, which has a vector of zero. This keeps the return to the carrier frequency 'in the center' much like FM and QAM do, so the carrier is easy to filter out and lock onto with a PLL. FM is orthogonal in an analog sense, as it is an analog modulation of the carrier, but is not 90 degrees out of phase, merely symmetrical. The sum of all modulation over a second or more is about zero.

In FSK and QAM, as they are digital data, tricks can be used the same as Ethernet and PCIe does by making sure no more than 3 bits in a row are all ones or all zeros. This is done in hardware at the physical layer on both sides of the link. It prevents the carrier frequency from being 'hidden' too long by repeating ones or zeros so the DSP chip can extract the data from the carrier.

The key to this working is in fact a nearly constant change from ones to zeros and zeros to ones, regardless of the original data stream at the HAL layer.