Es ist wohl richtig, dass eine direkte Verarbeitung des JSONObject schneller ist als das
RTTI-basierte JsonToObject. Selbst bei der Umwandlung der einzelnen Values weißt du ja schon, dass es sich um Strings handelt und kannst das durch den gezielten Aufruf von TryGetValue<string> ausnutzen, während andernfalls immer der Umweg über TValue erfolgen muss.
Also, ja, direkt das JSON abzuarbeiten ist deutlich performanter - aber eben auch aufwändiger und schlechter wartbar. Du musst halt abwägen.