(cough, cough) PHAdjustmentData (cough, cough)
Ah yes, that seems to be the piece in the puzzle that I missed!
"When your app begins working with an edited asset, examine the adjustment data provided by a PHContentEditingInput object to decide
whether the last edit made to the asset is compatible with your app. If so, you can allow the user to resume working with that edit.
If not, you can make further edits to the last saved version of the photo. "
Together with the last sentence here:
"The Photos framework stores
only one PHAdjustmentData object for each asset, describing the most recent edit made to the assets content."
it still seems however that "intermediate results" ("last saved versions") are stored (which is also important in case a plugin is not installed, such that the plugin result can at least be displayed). It also means that only the last plugin edit can be edited - all previous steps (done by other plugins) are kind of lost and only available as "last saved versions of the photo" (or maybe not even that!)
So we might have something like:
Original.jpg -> Saved version1 -> Saved version2 -> PHAdjustmentDataPlugin1 & Saved version3 (representing the result of 'PHAdjustmentData of Plugin 1')
So either a given plugin "understands" the most recent "PHAdjustmentData" and can continue editing/recording that, or it has to continue using the "Saved version3" and create its own PHAdjustmentData, so the Photo Library will end up like:
Original.jpg -> Saved version1 -> Saved version2 -> Saved version3 -> PHAdjustmentDataPlugin2 & Saved version4 (representing the result of 'PHAdjustmentData' of Plugin 2)
So it is kind of a "compromise" between "recording editing steps" and "intermediate results"