We permit dictionaries to grow using the isDelta property in the IPC protocol. I think it should be allowed for the same dictionary ID to appear in an IPC protocol stream but with isDelta=false. This would indicate that the dictionary in that message is to replace any prior-observed ones in subsequent record batches.
For example, we might have dictionary batches in a stream:
Such data could easily be produced by a stream producer that is creating dictionaries in different execution threads.