Why does the GS1 DataMatrix encode diagonally instead of vertically or horizontally?
Not a full answer, but this AMS column considers the same question:
&quot;The way in which bytes are stored as bitten squares might seem a bit peculiar, but if you think about how errors occur in the transmission of data matrices (for example poor printing, postage cancellation), it makes sense. The scheme is designed so that the minimum number of bytes are affected by such errors. Other features (the funny way in which `unrandomization' is applied) are not so clearly advantageous, and are pretty much a mystery to me.&quot;
http://www.ams.org/publicoutreach/feature-column/fcarc-data-matrix