As others have mentioned, it was largely chosen because of the ubiquity of 32 byte hashes. But overkill for regular math. One pernicious issue is that it makes translating existing smart contracts into ZK rollups really challenging because 256 but arithmetic blows up the circuit size.
https://www.theblockcrypto.com/post/116413/vitalik-buterin-r...
256 bit integers to avoid floats seems like a good idea too. I’ve wished for it whenever I try to represent integers as double. 2^53 is such an arbitrary restriction.
Wow. I'm pretty ignorant when it comes to Solidity, so it hadn't previously occured to me that it doesn't have floating point. It stretches the limits of the imagination to consider the insanity we'd be seeing if Ethereum did have floating point math.