It seems more users are tagged as anonymous in the Schema:Edit instrumentation than are actually anonymous. It's a bit hard to tell, but if you look at this graph: https://edit-analysis.wmflabs.org/adhoc.html#ve-success-rate-by-user-type.tsv you see how the anon success rate brings down the total success rate. Of all events, 78% have user.class = IP. Of all saveSuccess events, 57% have user.class = IP. James seems to think this is because mw.user (which is used to get .isAnon()) was changed to be async at some point. I looked quickly to see if these percentages change over time, and I didn't see any significant change. To make things even weirder, sometimes within the same session I see the user starting out as anon, logging in, then going anon again.
I will do more digging but I figured you guys should have this in mind. As is, or at least until we find potential solutions, the data is pretty unusable for user type analysis. I did try joining to the revision tables from the wiki databases and I found that event_user.id was mismatched with the rev_id in a lot of cases (for event_action = saveSuccess, not the others where I know it's expected).
I imagine we can just use the rev_id to repair the data, but I'd love for one of you guys to confirm before I do a lot of "stab in the dark" kind of work.