I agree with you that the important thing is to ask “what’s idiomatic?” I think a lot of people forget that just because they understand how Boolean numbers map to integers, it doesn’t mean that the average reader of their code has internalized that fully.
This is why the ~bool deprecation makes a lot of sense to me: most Python readers probably don’t know what ~False evaluates to.
As for arithmetic, while sum may be idiomatic, I think & for example is not. Would the average reader know immediately what True & 4 equals?
Of course, the average reader of code depends on the project. For your personal projects, it’s just you. At work, it may be one kind of engineer, and in an open-source project, another kind. Also, the average constantly changes. As Python attracts non-programmers or new programmers, the average becomes less knowledgeable; as those programmers mature, the average swings the other way. What is idiomatic code should work in nearly all contexts, and this naturally changes with readers.
In my opinion, the preferences of experienced Python program writers do not matter. The experience level of the average Python program reader is what determines idiomatic code.