@TomC is right.
The reason (for the record) for this is the runtime hierarchy is primarily for inheritance of task runtime settings, but secondarily it defines the collapse/expand family hierarchy for dependency graph visualization. However, it’s a multiple inheritance hierarchy (a task or family can inherit from multiple families at once) and collapse/expand only makes sense for a single-parent hierarchy, so we use only the first parents, at each level, for that. These two purposes don’t usually conflict but sometimes the first parent is inherited for base technical reasons (e.g. platform settings) that don’t reflect the logical purpose of the task, so
inherit = None, parent1 can be used to nullify the first parent for visualization purposes without affecting the inheritance of settings.
This dual use of the inheritance hierarchy is supposed to be a convenience - when it works you get a nice visualization hierarchy for free. But this
inherit = None, ... bodge is not exactly intuitive … so we’re planning to go for a separate, more flexible, visualization hierarchy in future.