I'm actually curious why something like this has never been included as a language feature, it seems trivial to come up with a syntax for fine-grained access control, that is fully backwards-compatible and a true zero-cost abstraction.
Most obvious first shot:
void badgedFunction() const friend Device, SomeOtherClass;
I've only just decided that I enjoy using this pattern so my internal standards committee hadn't progressed to the proposal stage yet. :)
Your syntax makes perfect sense to me, and I think it would make a great addition to the language. I wonder what the real working group would say. (I tried quickly googling for something that might sound like an existing proposal but came up empty.)