It is known that Ethereum addresses are generated by hashing the pubkey (ref. this post). However, I'm not certain that a single pubkey corresponds to a single address.
Use case
I would like to implement a schema of token exchanges where a user can send a single token only once (a kind of voting). The user generates a keypair and derives an address from the public key. The user then discards the keypair. I would like to be sure that a voter can't generate another address using the same keypair causing me to count his token twice.