fldoffset / csize are in fact ALWAYS checked. The field "generate_fldoffset" got created to validate amc's calculation of field offsets, and it is a separate function. Since amc is correct in calculating offsets after being debugged, these asserts only make sense in packed protocols where, if amc is ever wrong (vis-a-vis how compiler places fields) this would result in runtime error.
fldoffset / csize are in fact ALWAYS checked. The field "generate_fldoffset" got created to validate amc's calculation of field offsets, and it is a separate function. Since amc is correct in calculating offsets after being debugged, these asserts only make sense in packed protocols where, if amc is ever wrong (vis-a-vis how compiler places fields) this would result in runtime error.