Off hand I think this might be what I'd want for all of my uses of public_deps. I'm not actually sure what a case might look like where you didn't want that gn check behavior. So perhaps we can just change the check behavior, and add a .gn (dotfile) setting for backward-compatible roll-out of the new behavior.
Hmm, I guess I do know a case. That is the generic "redirector group" case. But it still seems like implementation_deps is actually the "usual" case for public_deps. So I wonder if we might want to change the names around so the stricter checking is what public_deps means and there's a new spelling for the actually-weirder case where you really do want gn check to treat it as the same. Probably not worth the churn, though certainly there will be many (I'm guessing a majority) of existing public_deps uses in the world that really ought to be implementation_deps.
Anyway, I'm certainly in favor of having a way to get this gn check behavior if it's not further complicating the rest of the (already arcane) propagation semantics.