heya, an object can and does exist across multiple commits / branches within a stream! this happens already and you can probably see this for yourself if you inspect similar commits across one of your own streams.
object ids are only tied to a stream. an object of the same id could exist in two streams, but this would not cause any conflicts and they would be two separate objects uploaded to each respective stream (and tied to that stream id).
the only word of caution here is that an object could possibly have different ids even if the data is the same depending on where the object was created. this is because json does not preserve key order and the
id is a hash of the serialised json string of the object. so if you create exactly the same object in two different places and generate the ids separately, if the json key order is different then you would get different ids for those two objects