This would need to be fixed at the protocol level to make it impossible - and we all know nothing will be done.
From what I've read on GitHub, there is a solution for it, but people argue it shouldn't be implemented, and every discussion on the topic is eventually closed.
Can you share discussion link which makes it impossible, including misuse of address and public key to store arbitrary data?
*Possible* - I don't know if it fixed all the possibilities, but it certainly addressed the main one that was being abused.