Hi there,
[node:14935] has some useful explanation on this topic.
Since you have to disconnect to change track terms, many set up a system where they kind of “trade” connections when they’re ready to change terms – you’ll have Stream A connected via User A and Application A with terms X and Y. Then when you want to start tracking Z, you’ll connect Stream B via User A and Application A and disconnect Stream A. Stream B is now your Stream A.
Even though you don’t use direct end user accounts to connect to the streaming API, it can still be useful to require authentication – it’s your primary means to grow your usage of the API with the size of your userbase – often you’ll need to backfill results or otherwise use the REST API to monitor change in tweets over time.