Die Kenntnis hat doch der Compiler/Parser - das ist doch der Sinn eines solchen with-Entfernungstools. Oder versteh ich dich jetzt falsch?
Ich schreibe selbst statische Code-Analysen für dyn. Sprachen. Und "with" gehört lustigerweise fast in diese Kategorie, auch wenn Delphi (bis auf OleVariant) statisch typisiert ist.
Man müsste alle Bezeichner innerhalb des with-Statements auflösen. Also den nächstmöglichen Scope finden, aus dem sie kommen können.
Das ist aber fehleranfälliger als man es erwartet. Gerade in Delphi, wo man als Tool nie weiß, ob man jetzt die Saucen nehmen kann, oder die .DCU hernehmen muss.