@jwildeboer But that isn't a fair example, either. Failed patches are not expected to be published, but the final one is. Private branches are neither expected, and the main one(s) are not required but nice to have.
The equivalence here would be if you do some trial and error with the training data, and by the end you only publish the good one.
However, not publishing the training data is more like publishing the Linux kernel as a blob and the minimum to build 3rd party modules (kind of).