Maybe "four int fields" isn't the best example here? C# would also store those four ints directly in the struct with no indirection, and in eg. Haskell a type with four immediate integer fields would also reflect them in its size (though they are itself boxes and the actual integer values live elsewhere/elsewhen), so this example is not offering a lot of contrast to that.