As someone said somewhere: if you use ZCASH, it is for its anonymity. But then you should use anonymous transactions. Even if they are "heavy".
Could you expand a bit on this? I haven't read much discussion of it. I would think that the possibility of some recipients being exposed (by not using anonymous transactions) entails significant privacy concerns for those who are using them.
You are perfectly right. A problem with ZCASH is that you can do also "normal transactions" like bitcoin transactions. In fact, for a long time, I wasn't sure about it. But ZCASH is essentially the realization of the old proposal of implementing zerocoin into the bitcoin protocol. Because bitcoin doesn't move, the ZCASH team essentially decided to launch a new "bitcoin" with, this time, the zerocoin protocol (the improved version, zerocash) incorporated. So you can have zcash "coins" which are like bitcoin, and which are transparent ; and then you can transform coins into notes, which are the anonymous version. You can also redeem coins with notes. The notes are anonymous because when you transact notes, you do this with a zero knowledge proof: you prove that you have been using a valid note in your transaction, but people don't know which one. So the anonymity set is all the notes that have ever been created. The ZK proof also indicates that this note was not yet "spend". The next time you try to spend the same note, it won't work, you will not be able to make a new ZK proof of valid note. But nobody apart you knows which note.
These notes ZK proofs are very computationally heavy to make (about a minute on a high end PC).
So essentially you have:
normal "bitcoin" transaction: (coins) -> (coins)
ZK proof: (coins + ev. notes) -> (notes) OR (notes) -> (coins + ev. notes) OR (notes) -> (notes)