Why MATLAB only allows cpsd and mscohere between vectors with the same length?
The calculations are done in the frequency domain using pairs of FFT's which is why the vectors need to be the same length.  You could truncate the longer vector to the length of the shorter. If the longer is much longer, you could select multiple (different) truncated segments.

You can do things in the time domain like cross correlation, but mscohere and cpsd average (the default of 8 segments).  A single crosscorrelation isn't equivalent.  

When reading "does it make sense" (you're not the only one who asks), Internally, I think this is a lack of confidence and I don't want to discourage this person from trying, but this is whacko .  Try it. MATLAB is easy.  It's designed to explore the whacko.