Just as you said, the test statement appears to be malformed so it does not function as expected. Clearly the intent is there, but MM doesn't understand it as written. Usually that wouldn't matter except that MH replaces some stock items, so the target part always exists in some form. Here is a tiny snippet of log file from a clean copy of KSP 1.4.2 with only RealPlume - Stock (v1.2.0) and its dependencies installed. (Just looking at the Swivel engine)
[LOG 03:53:29.569] [ModuleManager] Deleting root node in file RealPlume/RealPlume-Stock/VenStockRevamp/liquidEngine2 node: @PART[liquidEngine2]:AFTER[RealPlume]:NEEDS[VenStockRevamp] as it can't satisfy its NEEDS
[LOG 03:53:29.804] [ModuleManager] Applying update RealPlume/RealPlume-Stock/MissingHistory/liquidEngineLV-T45/@PART[liquidEngine2]:NEEDS[MissingHistory] to Squad/Parts/Engine/liquidEngineLV-T45/liquidEngineLV-T45/PART
[LOG 03:53:30.015] [ModuleManager] Applying update RealPlume/RealPlume-Stock/Squad/liquidEngine2/@PART[liquidEngine2] to Squad/Parts/Engine/liquidEngineLV-T45/liquidEngineLV-T45/PART
MissingHistory is obviously not present, yet RealPlume's update for it is being applied. The first update appears to take priority, so the end result is that the engine plume looks like this: Exhibit A. (Standard part with plume intended for the MH version of the engine)
Changing the NEEDS statement so that the proper test is performed puts things back to normal.
[LOG 05:56:04.852] [ModuleManager] Deleting root node in file RealPlume/RealPlume-Stock/MissingHistory/liquidEngineLV-T45 node: @PART[liquidEngine2]:FOR[RealPlume]:NEEDS[SmokeScreen&MissingHistory] as it can't satisfy its NEEDS
The same engine, now with only the stock config applied: Exhibit B.
(This test does pass if MissingHistory is actually installed)
I couldn't possibly claim with certainty that there are no bugs in MissingHistory, but I think that this is not one of them!
Bonus: Exhibit C.
tl/dr: MissingHistory is innocent!