in the scenarios where Terraform may be able to get away without state, doing so would require shifting massive amounts of complexity from one place (state) to another place (the replacement concept).
Terraform requires some sort of database to map Terraform config to the real world.
For some providers like AWS, Terraform could theoretically use something like AWS tags.
Terraform must know how to delete that resource from the remote system.
cache
as a performance improvement.
when using Terraform in a team it is important for everyone to be working with the same state so that operations will be applied to the same remote objects.