Julia compiles functions dynamically for each set of input types encountered. To call the right functions, Julia needs to know what types those functions are operating on. If the return type of a function is consistent, then for any input, Julia knows the type of the output, so when that output is used later, Julia can figure out the right function to call at compile time. If the return type of a function isn't consistent, then to use the output, Julia needs to look up the function to call at runtime. That's not actually a big deal inside `pcasvd`, since it doesn't do much with `Xmean` and `Xstd`, but the inconsistency propagates: if the return type here isn't consistent, then neither is the return type of `pcasvd`, and this goes on to affect the code that called `pcasvd`.

What I really wanted to say here is that these should be empty matrices, since `mean(X, 1)` of a matrix returns a row matrix.