Отражение решительно не замедляет производительность Вашего приложения. Можно быть в состоянии сделать определенные вещи, более быстрые, не используя отражение, но если Отражение является самым легким способом достигнуть некоторой функциональности, то используйте его. Можно всегда осуществлять рефакторинг Вас код далеко от Отражения, если это становится проблемой перфекта.
Отступ происходит по модулю 8, в
com.sun.xml.bind.v2.runtime.output.IndentingUTF8XmlOutput
вы найдете
int i = depth%8;
Я не думаю, что есть предел. Я видел очень глубокое гнездование, без каких-либо трудностей. Есть ли у вас контроль пробелов? Кроме того, вы не предоставили определение класса RateThreshold, который создает неожиданный результат.