Now if you're getting constantly pinged for stupid shit that anyone could Google, then perhaps you should politely confront the person(s) doing so and make your expectations clear rather than declaring a pox on all interruptions.
Wouldn't this be true of just about everyone complaining about such interruptions though? I can't imagine anyone would mind being interrupted if the building were on fire. People just differ on what they consider to be good reasons.
I'm sure there are unreasonable people on all sides, both those asking for unreasonable conditions to interrupt them and those not respecting reasonable conditions for interruptions, but I don't think it's the majority of the people complaining about it. I've been in this situation a few times, and lots of people just don't have good impulse control and so don't even think twice about interrupting you if it's more convenient for them.
I think you've conflated quality and productivity; you started talking about one then switched to the other. They are related but not the same.
Certain dev tasks require deep flow for good results/quality. Robust refactorings, abstraction design and prototyping. Basically anything where you have to preserve invariants under code transformations. This isn't all dev work, and isn't necessarily frequent either, but when flow state is required it's usually important work that's core to a program's operation, so product quality definitely depends on flow.
If you're working on such a task, an interruption requires a return to that flow state to ensure good quality, and that takes time and will definitely impact productivity.
Other tasks do not require going very deep though and so achieving comparable quality doesn't require much depth in your flow. Interruptions won't affect productivity much in such cases.
My two cents.