FTA:
The key thing to note is that no observer can link two addresses together. However, it is possible for the sender to link payments together if the receiver re-uses addresses.
For example, if you withdraw from ExchangeA using AddressA, and then go on to issue another withdrawal from ExchangeA using AddressA, the exchange will easily be able to link these two withdrawals together by simply comparing the withdrawal addresses (even if you used different accounts). Furthermore, if ExchangeA is cooperating with ExchangeB, it would be possible for both exchanges to link address-reusing withdrawals together.
Additionally, even if the sender is not cooperating with other entities in order to link transactions together, it is still possible for the sender to unwittingly link transactions together if their software is poorly implemented and erroneously re-uses the same random data for multiple transactions. Basically, the receiver is relying on the sender to generate good random data in order to generate a one-time key. If the sender fails to use good random data, then the "one-time" key isn't "one-time", and transactions can possibly be linked.
So, for maximum protection against linkability, it's a good idea to generate a new addresses for transactions that you don't want linked.
Further reading: https://localmonero.co/knowledge/monero-subaddresses?language=en
I think this can easily be achieved by generating a new subaddress for every request. ( I don't know how OpenAlias works, maybe it already does this.)
The only way this would work is to peg it to fiat or commodity. Or expect that your ROI will either be nothing or an insane amount.