I have not read this thread but just to clarify.
The design does expect the container of options to be semantically a set. We can't afford duplicated options whose equals implementation consider they are the same.
I forgot the details but I think this is deeply entrenched in the design and a good thing too.