Right now a number of extensions treat the ParserOutput as a read-write store, reading a previous value from the ParserOutput, updating it, and then storing the updated value back. This is incompatible with the separate/asynchronous/incremental parsing model on the Parsoid roadmap, the "write-only" model of the Parsoid ContentMetadataCollector interface, and the proposed asynchronous-parsing aspect of the WikiFunctions feature.
Methods which assume a destructive update should be replaced with append and set variants which are guaranteed to be write-only. (The "set" will throw an exception if a different value is stored for a key, although use as a flag where multiple places set the same value is permitted; "append" collects all values in a set.)
Any post-processing (to select the minimum value set, the last value set in wikitext order, etc) should be done when the collected results are transferred to the OutputPage, not done in the ParserOutput itself (ie, in the OutputPageParserOutput hook).