They work differently because of the lack of something like 702.97c in the rules for haunt.
The reason "Haunting" is different from "Encoded" is because the latter has that rule defining an ending condition, while the former has no such rule. Encoding can end, but a creature can't become "unhaunted."