The main reason why z-addresses are not more adopted right now is the bad user experience.
If you want to make a transaction from/to a z-address you need to deal with the following:
1. Find a wallet that supports them or run a full node and deal with the command line.
2. Wait 60 seconds with the CPU on 100% until the transaction is sent out.
3. Loose functionality, like the possibility to just have a link to the explorer proving that you did the transactions.
I guess that 2 and 3 are the reason why exchanges don't want to deal with z-addresses.
Right now most users are miners and they want just to get their ZEC to an exchange. No need for a shielded transaction.
The anonymity is not even my favourite feature about z-addresses. It's the memo field (https://z.cash/blog/encrypted-memo-field.html). I'm currently working of an Zcash anchor for Stellar (https://www.stellar.org/learn/explainers/#Anchors_trust_and_credit).
You would just include your Stellar address in the memo to a specific address and get Zcash issued on the Stellar network. This would immediately give you access to a completely decentralised exchange on Stellar (https://galactictalk.org/d/26-project-idea-distributed-exchange) and super fast (2-3 sec confirmations) micro transactions (Zcash's lightening network?). You can also go the other way (Stellar transactions have also a memo field). You do a transaction to a specific Stellar address with a memo containing the Zcash address and your Stellar Zcash turns into a real Zcash transaction.
I think that there are even more possibilities. It will just take some time until we realise what we can do. But we will get there. It's like 1 month since Zcash lunched and great ideas/projects will take some time to be implemented.