The libraries are making an assumption about what will make the most sense most of the time. The decision of the library is based on a memory-speed-numerical stability tradeoff that will make the most sense based on the shapesshape and contents of $X$ the library expects to see. You have a very atypically shaped matrix $X$, so the library's assumption doesn't make sense for you. What you're proposing is perfectly valid and makes a lot of sense for your $X$ (especially if the columns aren't close to colinear).