As described in the title, the global classes are only saved in CSS when they appear at least one first time in the page. That’s good in terms of code weight. But sometimes it isn’t that good. Let me explain.
Let’s consider I created a class “.hidden” with custom css %root% {display: none}. And I’m using interactions to toggle add/remove the class in another element. This won’t work unless we use the .hidden class at least 1 time, so we would need to add something and add the .hidden class to it so the class works.
I’ve run into that myself, though I’m not sure that it’s a bug as much as a tradeoff, like you identified. In my case, I defined the class in WPCodeBox. You could probably also use the page CSS.
The behavior is correct in this case because there is no way to know in advance which classes will be added later/dynamically and which will not.
However, as Bret already said, the problem can be solved very easily by defining these “helper” classes in the Bricks settings, for example, so that they are always available.