As discussed in #3246, clear (followed by append) keeps metadata schema identical at the byte level, while set_columns also keeps metadata the same, but re-encodes it (sets the byte representation to the canonical metadata). I think this is a bug, but maybe there's a good reason for it?