One issue that can happen that the article didn't mention is running out of AST node identifiers in Clang.
Clang uses a 32-bit number to identify AST nodes. If a single translation unit is large enough, it can overflow this and you can get some very weird compilation errors.