I agree with Greg and Laolu; BIP-37 filtering for transactions is no better than for blocks and completely destroys privacy.
A constant stream of transactions is OK, but even cheaper for light clients would be Laolu's proposal of streaming more tx data than existing inv messages but less than existing tx messages.
We could make a bit field of things to include in every inv-with-metadata message, such as:
- witness data
- scriptSig data pushes
- scriptPubKey
- hash of scriptPubKey (unnecessary if full scriptPubKey is sent)
- scriptPubKey data pushes
- etc.
This way a full node might be able to tell what application (or type of application) a light client is running, but not the client's addresses or outputs, except maybe when the client originates transactions.