I know close to nothing about the subject in question, but maybe thoughts from a non-expert may be useful:
If there's a widely adopted terminology, one should probably stick to it even if the wording is counter-intuitive or misleading (but note that fact in the documentation). After all, Simple Groups are not easy at all and you need to know about Galois Theory to understand why Solvable Groups are named that way. If the operations are called foo-before-bar, I would have to look up documentation on every instance to understand what the intended usage is. So for me, naming the operations after what they do, but have aliases for intended usage would make sense. When I read frozz_enter() and frozz_exit() in code, my expectation is that every call fo enter is paired with a call to exit _in the control flow_, i.e., there's no (other than panic) code path that goes through one of them, but not the other. Would it make sense to call the intended-usage aliases something like push/pull, provide/consume or publish/whatever?