It’s quite easy to compare how Ethereum and Hyperledger Fabric (Fabric) handle state: In Ethereum state is part of the blockchain (block header), while in Fabric state is a result of transactions recorded in blockchain. The source of truth is on the blockchain (transactions), not on the state. Unfortunately many chaincodes rely on input from state. On this aspect the integrity protection is better in Ethereum.
Note that the scenario I depicted only applicable in a unsecure CouchDB. Either using LevelDB or securing the CouchDB may reduce chance of this happening. Also, a better endorsement policy helps.
Digitally signing to world state is a choice. The problem is who signs it. It is orderers creating blocks but orderers have no visibility on state database. Have not thought through this yet.