Consider saving witness related data to a file, e.g. witness.dat instead of storing it in wallet.dat.
- Separation of data, to isolate and only store keys in wallet.dat.
- Performance by avoiding contention between different subsystems trying to write to wallet.dat
- Avoid frequent writing of data to wallet.dat on block rescan and reindex.
- Reduce risk that when a system crash occurs, wallet.dat is being written to
Related, see zcash/zcash#1749