...Und mitunter kommt der Compiler schon mal durcheinander...
Ganz sicher nicht. Der Compiler ist deterministisch, da der die Grammatik zumindest hier formal korrekt interpretiert.
Die "Notwendigkeit" für ein with ist wahrscheinlich Feature Envy, Indecent Exposure und/oder Message Chains
So hab ich das noch nicht gesehen. Aber stimmt: Verwender des 'WITH' müssen nur ihren Code aufräumen (zur Not mit Class Helper), dann wird das 'WITH' meist überflüssig.
Mein Code riecht immer dann gut, wenn ich keine Kommentare benötige, da der Code flüssig zu lesen ist (wie eine Beschreibung) und einfach zu verstehen ist.
Weiterhin spüre ich, das ich in die richtige Richtung gehe, wenn die Klassen mit Scheuklappen durch die Gegend rennen, d.h. keine Abhängigkeiten zu anderen Klassen existieren. Dann kann ich mit den Klassen vieles anstellen, ohne mir einen abzubrechen.
Eine schöne Beschreibung für eine gut implementierte Methode ist von Dr.Bob: "Wenn Du das, was die Methode macht, beschreibst, und ohne das Wörtchen 'und' auskommst, hast Du etwas richtig gemacht".