I don't want to go down a rabbit hole just yet, so I'm just going to ask.
I got one of these things: A IContextSourceBinder Vocabularies — Plone Documentation v5.2
And, as far as I know, it's all simply wired up. The only thing a bit different is the field that uses the vocabulary is in a behavior.
Is there any reason why an anonymous view of an object would call the vocabulary constructor?
Maybe we have some stray code that manually calls the vocabulary, I haven't looked for it yet.
All I know at this point is that my vocabulary function - used for one field, (in a behavior, btw) is being called 3 times each page view, and it's slightly annoying.
Wait - I think I know what I did wrong... now that I wrote this out... but still asking this basic question.
"Well me, it's nice talking to myself
A credit to dementia"