Since the attacker would need the public key, using each address only once would help against that it seems, but in the current state of Bitcoin it is certainly not very easy to use each address only once in every situation. It is especially difficult for services which have their addresses public, donation addresses, green address features of some companies, etc.