For light clients using BIP 157/158 it'd be really nice to be able to use the chain::Watch API - its a chunk simpler and if you're syncing the header tree anyway it lines up much more directly with how you do so over P2P. To do this, I think basically the only change would be to add a best_block_updated_without_matching_txn method which just takes a header.