I understand that we need a public/private key so anyone can sign a message and miners can verify the signature using the public key. But, In this Question Relationship between Ethereum Address and public key
Etherum addresses in general for 2 reasons :
1- addresses are shorter than public keys. a public key is 64 bytes(128 hex characters), whereas an address is 20 bytes only(40 characters ).
2- addresses are hashes of the public key, therefore they provide more security even against quantum attacks.
However, according to this answer, Get public key of any ethereum account, we can still get the public key of the sender from its address.
So, actually I got confused for the following reasons;
why we use addresses if we can recover the public key from an account address?
How addresses can provide more security against quantum attacks, who should launch these attacks and why?