Hi again @pleopard,
My colleague Xiao, who has not got onto Discourse yet, has provided a possible explanation for your 2nd case.
By default Cylc will not let you insert a task into an in-valid cycle point (in-valid means the graph does not define any dependencies for that task in that cycle point). But you can force it to with a command option (or a corresponding check-box in the GUI):
$ cylc insert --help
--no-check Add task even if the provided cycle point is not valid
for the given task.
If you force a task to be inserted into an invalid cycle point, it will be inserted with no prerequisites (because the graph defines none for it, at that cycle point) and it will therefore (correctly) run immediately (unless the suite is held).
For family insertion, note that the family name is just short-hand for “all the family member tasks”, and
family membership is defined purely by runtime inheritance, so it is quite possible to define a graph in which some members of a family are not used in some cycles. If you try to insert the whole family into a cycle point, by default Cylc will only insert the members that are valid at the cycle point, but again you can force it to insert them all (and the invalid ones will naturally have no prerequisites, as described above).
Does this describe what you’ve done/seen?