Exactly, with Treesitter the AST means that you don’t have to completely reparse every token. Treesitter just updates the existing AST rather than restarting from scratch so it’s super efficient.
Does that AST add some complexity? Of course, but it’s the only way to keep a consistent API if you want to have highlighting for code blocks and LaTeX.