I also agree that for type comments on 'with' and 'for' we should just recommend putting the type annotation before the statement (this is already needed in some cases in match/case statements).
That's what I decided to do in the LibCST codemod, which as far as I know handles all the edge cases (multiple assignment, with, and for) correctly when the type comment is well-formed, e.g. when tuple arities match.
One thing I discovered when getting rid of all the type comments in our code was that many type comments were unmaintained and had become malformed; I suspect that will be a common problem for people bulk-converting them. In those cases the LibCST codemod leaves the comment in place, which lets you grep for them after applying the transform.