I think the basic reason is that these aren’t fully orthogonal. Small rows are often the ones you want to be passed by value, but copying then it’s basically free, since they are fixed size and small. Furthermore, specifying immutability allowed the computer to do all sorts of other trucks, most importantly, not creating the struct at all.
1 Like