> why the compiler shouldn't reorder structs so that they take the least space possible
I think you'd get most of the benefit by writing a static analysis tool (a la "go vet") that suggests when reordering a struct's fields would reduce memory consumption.