This is the expected behavior, because the wallet is storing (and indexing in several ways) every transaction that was broadcast from the node's own addresses, for rapid retrieval via APIs such as listwallettransactions.
If you want to avoid this behavior, your best option for now is to use an external private key / address for publishing to the stream, and then the wallet will not locally store and index each item. First, one time, create the key pair using createkeypairs and make sure the address is given the necessary permissions.
Then for each item use the createrawtransaction API to prepare each item for publishing, and always include an empty change output back to the original address. Always remember the txid+vout of the change output of the last transaction, and use that as the input for the next transaction (the first txid+vout can be from the transaction that granted permission to that address). After creating the transaction for an item, use signrawtransaction passing in the private key to sign it, then sendrawtransaction to broadcast it.
We understand this is not so convenient and will be looking into adding more options for not indexing locally generated transactions in future.