Currently, pinentry offers to save passwords for symmetric encryption keys.
This is because symmetric keys have a valid cache id (thus gpg-agent calls
SETKEYINFO on a pinentry).
A major issue with this, according to Werner, is that unlike public key crypto,
people are using symmetric encryption because they don't want to leave any
traces on the disk about the encryption.
Note: that saving passwords in an external password manager is defined to be
opt-in so security conscious users are unlikely to save the password.
In gpg 2.0, this is not easy to fix: both symmetric keys and public keys are
cache mode CACHE_MODE_USER. In 2.1, public keys are CACHE_MODE_NORMAL. As
such, in 2.1, we could not call SETKEYINFO for keys with CACHE_MODE_USER.