Sometimes the state needed to dissect a packet doesn't come from other packets in the same TCP segment, even if the protocol in question happens to be running atop TCP (which, as per "Won't work for UDP, I suppose", isn't necessarily the case).
Strange. Like what? DNS names?
BB