Tabular stores data in highly efficient ways, and sometimes it needs to change the data for homogeneous storage. Then we want to preserve the original input for normalization. For example, columns of quantities store all magnitudes in the same unit. Compare these two cases:
In[]:= Normal@ ToTabular[{{Quantity[1, "Kilometers"]}, {Quantity[1, "Meters"]}}]
Out[]= {{Quantity[1, "Kilometers"]}, {Quantity[1, "Meters"]}}
In[]:= Normal@ ToTabular[{{Quantity[1, "Kilometers"]}, {Quantity[1, "Meters"]}}, Automatic, <|"CacheOriginalExpression" -> False|>]
Out[]= {{Quantity[1000, "Meters"]}, {Quantity[1, "Meters"]}}
In the first case we cached the data, and therefore Normal recovered the original expression, even though internally it was changed to meters. In the second case we didn't cache, and therefore Normal recovered an equivalent expression, but not the same one.
I may have misspoken about doing this only for small cases. I will check with my colleagues to see if we currently always do this when Tabular believes Normal may return an output that is equivalent but not identical.