Здесь я буду записывать вопросы связанные с реализацией и работой Callback: FindCB().
Как я понимаю, что его использование - это не частый случай и потому опыт будет полезен.
--- МИНУСЫ ---
1. На больших структурах данных (сотни тегов) включение FindCB() сильно замедляет выгрузку JSON пакета.
Причём это ощущается даже на маленьких объёмах данных (2-3 записи).
Здесь ключевой параметр - это именно размер самой структуры.
2. Появляется зависимость от последовательности следования групп тегов, что тебует очень аккуратной работы
со структурой данных и её комментирования (что уже идёт в разрез с идеями Дуглас Крокфорда).
3. Наличие "прямого" доступа к структуре данных. Т.е. нельзя обрабатывать структуры переданные
как *GROUP / *QUEUE, что уже ограничивает функционал заложенный в самом классе cJSON.
4. Про огромный объём кода, который сложен в сопровождении даже можно и не упоминать ...

--- ПЛЮСЫ ---
1. Можно ввести зависимость состава выгружаемых тегов от данных.
Т.е. например управлять набором тегов в зависимости от типа выгружаемой записи.
В механизме OPTION этот вопрос вообще не рассматривается.
--- ИТОГ ---
При использовании FindCB() всё работает правильно !
Но укаазнные вопросы говорят о том, что FindCB() - это скорее некий отладочный фокус, а не боевой режим работы ...