@jtaylor-sfdc 
IF we are making isFixedwidth() as false for all array types then in ColumnExpression whether we return the byteSize as null or not for Arrays we would still not write the byteSize.  Any way it is only the byteValue serialization that would determine the way the array would be read back.
{code}
 if (type.isFixedWidth() && type.getByteSize() == null) {
            this.byteSize = datum.getByteSize();
        }
{code}
So byteSize would be  null always.