There could be cases, for example, when the operation is part of a composite operation, where the information processed and stored at the Model stage differs from the information available on the initial operation object. So it is a bad practice to get runtime data from the operation. Instead, the information should be retrieved from the model tree.
StaticDiscoveryAddHandler and DiscoveryOptionAddHandler OSHs are populating the host controller info at runtime from the operation object.
The task here is to validate whether this is correct.