I don't think this was ever my issue with Latex, which instead are mostly:
- the cryptic error messages and infinite logs
- the unintuitive ways to do stuff like store a value for later use or sum two lengths
- the very long compile times
- the amount of reliance on global state from various packages, which contributes to even more cryptic errors or weird behavior when something goes wrong
- various other quirks, e.g. the fact you often need to end a line with a comment or the newline will skrew up your content.
Some is spent on optimizing the results on the paragraph, page, and multi-page level: river elimination, color balance, widow and orphan elimination, etc. I don't know how much of this Typst does; certainly HTML + CSS does none of it.
The non-control characters of ASCII are largely characters you might actually want to put in a document. TeX uses some of these as markup, e.g., the dollar sign to bracket maths mode and the ampersand as a column separator in tables. Typst takes this much further, using plus and minus signs to introduce list items, at signs for references, and so on.
Ideally, all visible characters should produce themselves in the printed output, except for the backslash introducing control sequences that represent all of the markup and braces for delimiting the extent of parameters to those control sequences. This would produce a very predictable and easily-parsed syntax.