I recently saw a smart contract where the user used keccak256(address), is there any reason to do this, instead of just storing the address in the mapping?
It can be part of an effort to obfuscate data. For example, in games or scenarios in which players shouldn't know. For example, suppose one wishes to name a beneficiary without actually revealing the details.
Storing hashes in a contract can be part of challenge/response process. There are many ways and reasons, some of them good. :-)
Hope it helps.
This would likely be pointless since the address is already the last 160 bits of a keccak256 hash. Were they using the keccak256(address) as the key in the mapping? If so, this would be doubly pointless since a mapping hashes the key anyway. It's hard to say exactly if it's pointless without seeing the contract.