The log will only be duplicated if the streams are associated with separate indices, if the streams share an index then the log will not be duplicated.
Streams are a way to logically separate your logs, this is useful when you think about searching, dashboards, pipelines and permissions.
As an example you may only want a given user to be able to see logs from your nginx hosts and in this case you simply share with that use the nginx stream and nothing else.
Another example, when utilising pipelines and rules this is done per stream. If you wanted to only enrich the logs coming from your nginx hosts that is made easier assuming all those logs can be found under a single stream, a pipeline can then be associated with this stream.