It doesn't matter? There are 2 things often conflated in 3D math libraries. Column vs Row storage and separately how those elements are used.
Most libraries that I've used store the data as you've written it.
[ xx, yx, zx, 0, xy, yy, zy, 0, xz, yz, zz, 0, xT, yT, zT, 1]
or another way to picture it
[ xAxis, 0,
yAxis, 0,
zAxis, 0,
translation, 1]
They then provide matrix functions. If you changed the storage format you could easily change the functions to so the behavior didn't change. It's only if you allow direct access to the elements of the matrix that storage format matters and then you can still choose whatever format you want, you just have to tell you users what that format is.
As an example with the format as it is above a typical GLSL shader might have code like this
gl_Position = u_worldViewProjection * a_position;
If you switched the order to
[ xx, yx, zx, xT, xy, yy, zy, yT, xz, yz, zz, zT, 0, 0, 0, 1]
You'd just change the GLSL to
gl_Position = a_position * u_worldViewProjection;
On the other hand, since (at least from my experience), most libraries store their matrixes the same as the top example it seems like a good idea to do the same?