I think bicoind save the state of the last block because it can access to DB and read the last block stored into DB.
also, I have noted when running bitcoind, it runs some previous bock (I don't know the motive)
This is the log of the bitcoind
2019-08-22T10:51:33Z init message: Rewinding blocks...
2019-08-22T10:51:36Z init message: Verifying blocks...
2019-08-22T10:51:36Z Verifying last 6 blocks at level 3
ps: If you kill the process bitcoind without stop command you can corrupt some file blk and inside it, the client bitcoin can store trash data