the data in dba_tables is gathered from statistics periodically collected through "Analyze table ..." or "DBMS_STATS ..." etc.

Size according to DBA_SEGMENTS is correct all the time.