Since validating transactions only requires knowing the state of the world at the block at which is being validated, maintaining historical state outside of that block is not necessary for validation. Despite this, non-archive Geth nodes will still maintain state for the last few hundred blocks in memory and checkpoints of state at points in time on disk. Why? In case the chain reorganizes and state needs to be looked up for a particular account at an earlier block height. The historical state of the last ~1024 blocks is considered enough state to keep to tolerate most reorgs.