I agree with the inefficiency point. Re-use of processing steps requires standardization of the formatting of such data, which long-term is the goal of BIDS Derivatives; but that’s going to be a pretty long-term project I think.
Rather than "re-using the FLIRT output from
5ttgen fsl", the more appropriate design would be to execute FSL
run_first_all as a standalone command, and have both
5ttgen fsl and
labelsgmfix have command-line options that read from the output of such, executing
run_first_all themselves internally only if that option is not specified. This wouldn’t be too difficult to implement for anyone reasonably familiar with Python, it’s just one of many things that fails to achieve priority over all the other things I need to do myself…