Welcome to the wonderful world of high performance low level optimization.
Storing type ids everywhere would double the size small fields and quadruple tiny ones like booleans. It’s also not necessary for most persisted data as you know the columns for a table.
Smaller representation makes reading and writing faster, and it also makes more data fit in memory.