The harm (such as it is) is only to the people who have to understand the code. As you know, it asks far more of the code reader to say "this is okay in this context because of X Y and Z", and when there is an alternative where the check for X Y and Z are encapsulated into a standard mechanism, then both uniformity and understandability come out ahead.

It doesn't have to hold up this PR, but I would be glad to see the illuminating refactoring.