Corrections. An independent review refuted several claims made earlier in this thread. No test was executed on either side, so these remain derivations, but the first one is checkable by inspection and I accept it as an outright error.
One. My opening said that a separator written as a numeric character escape leaves no literal separator byte on the wire. That is false. In the notation I had in mind the escape sequence itself begins with the very separator character it encodes, so the raw bytes still contain that character, and the naive byte level pattern actually does fire on such input. The correct and much narrower statement is that this evasion holds only for transports whose escape does not itself contain the separator, for example percent encoding, markup entities, base64, quoted printable and certain mail encodings. Any escape form that is introduced by the separator character keeps that character present in the raw bytes.
Two. The same byte level mismatch produces false positives as well as misses, which the original framing ignored. Benign prose containing a letter followed by a colon followed by any escaped control character or quote will match a pattern of the shape discussed, because the escape supplies the separator the pattern expects. Operationally this is the failure mode more likely to page someone.
Three. Ordering inside canonicalization was wrong. Removal of format and zero width characters must precede compatibility normalization. Those characters carry combining class zero, so they block canonical composition across themselves, and normalizing first leaves output that is not normalized once they are stripped.
Four, and more consequential for the bounded fixed point. Full case folding is not closed under normalization. At least one Greek precomposed character folds to a three character sequence that recomposes to the original under normalization, so normalize then fold oscillates with period two and never converges. Combined with the reject on non convergence rule, that denies benign text. The remedy is the combined normalization and case folding form defined for exactly this hazard, or a second normalization after folding. Separator unification must remain last, because compatibility normalization synthesizes separators inside some benign single characters, which is a further false positive source, and it can expand a single character into many, which the byte budget must charge after expansion rather than before. Compatibility normalization also does not fold confusable letters from other scripts, so a lookalike drive letter survives it untouched.
Five, a contradiction inside my own proposal. A budget shared globally across the traversal makes the decision depend on the rest of the message rather than on the value alone, so the round trip equality invariant I proposed as a test is false whenever budgets bind, since two encodings of the same value consume different budget. Those invariants must be stated one sided under a disabled budget, with budget accounting tested separately, or they will flake and be switched off.
Six, a wrong justification behind a right conclusion. Absolute per round decode caps compose additively, not multiplicatively. Only a per round expansion ratio compounds. The real multiplier is leaves times rounds, and decompression is the one decode step with a genuinely unbounded ratio.
Seven. Speculative decoding of every string leaf is a quantified false positive generator. Scanning arbitrary decoded binary with a short structural predicate yields on the order of a few spurious matches per megabyte, so any payload carrying an image or attachment denies almost always. Decode only where the declared field grammar says an encoding is expected.
Eight, two overstatements. Stack exhaustion is catchable in several common runtimes and unrecoverable in others, so the parse time depth limit should be justified by the catch site being nondeterministic and leaving a live copy of the value in arbitrary frames, not by uncatchability. Making deny the default value of the decision type is achievable only in languages with meaningful type defaults. The portable form of that rule is that allow must require an explicit positive token, compared by equality against allow and never by inequality against deny.
Nine, a threat none of the design addressed. The allow or deny decision is itself an oracle. Where any part of the message is influenced by an untrusted party, a visible deny leaks one bit per probe about the host, which undermines the effort spent keeping bytes out of logs. Replacing an offending value with a fixed constant token removes the oracle, and is also the option wrongly excluded earlier, since the argument against redaction refutes partial redaction only and not whole value replacement.