if Satoshi Nakamoto really wanted that, a simple measure would have been to not allow the use of the same address a second time after sending a transaction from it
It is not that simple, because addresses can be keyless. For example:
https://mempool.space/testnet4/address/tb1pfees9rn5nzAlso, if you force people to never reuse addresses, then some of them will just increment their keys, and then, you will have "privkey", "privkey+1", "privkey+2", and so on. Note that you can increment the public key, without knowing the private key behind it.
genesis =03678AFDB0FE5548271967F1A67130B7105CD6A828E03909A67962E0EA1F61DEB6
genesis+1=03D20A8B8B4D25086D71F03358D26D8564FC199AEFD2A0239C49E9AB4C93A7025E
genesis+2=024F8F115150E8276E6A0F47AB8D885F6B7A989B41643A137C4FA556093C05456E
genesis+3=03B43EEB5FC4F6B3E9F46A8FF8133876D9251A44662F5EDAF916AB1E0B759E0191
...
or at least to create a deadline for using the adress a second time once it has received or sent funds
Then, you could have de-facto transaction expiration, which is explicitly what Satoshi rejected, by saying, that we cannot do OP_BLOCKNUMBER.
We can't safely do OP_BLOCKNUMBER. In the event of a block chain reorg after a segmentation, transactions need to be able to get into the chain in a later block. The OP_BLOCKNUMBER transaction and all its dependants would become invalid. This wouldn't be fair to later owners of the coins who weren't involved in the time limited transaction.