The omissions are systematic, not random
Under-reporting in dietary self-report is well documented, and it is not evenly distributed. Cooking fats, sauces, drinks and unplanned additions go missing far more often than the main component of a meal, because they were never the thing being logged.
Random error averages out over a week. Systematic omission does not. It accumulates in one direction.
Portions are where the arithmetic breaks
Across our own benchmark runs, the dominant failure was never finding the right food. It was the portion: how many, how large, what fraction of the recipe. That matches the general pattern in dietary assessment, where quantity estimation is a larger error source than food identification.
It also means a tool that is very good at recognising food and vague about amount has optimised the easier half of the problem.
The meals that never get entered
The largest single error in any log is a meal that is not in it. Effort decides that outcome, and effort is highest for exactly the meals that are hardest to estimate, which is why the gaps cluster around eating out and snacking.
What follows from this
Two things reduce drift, and neither is discipline. Lowering the cost of entering a meal, so the awkward ones still get logged, and making the estimate inspectable, so an obviously wrong portion can be corrected in a moment instead of quietly sitting in the total.