Thanks, John! I ended up using get_field_object() to see how the field was coming out of the data store, wondering if that might be before any filters were applied, and the disabled flag was set to 1 in the return from that function.
Then I remembered that I’d created an acf-json folder in my theme just a few days prior to take advantage of the caching speed. Sure enough, the json that had been written to disk had the disabled flag on. I deleted the folder, and the field went back to functioning normally.
So it appears that anything that happens in load_field affects what’s cached in the acf-json folder. I reported this in a support ticket.
I appreciate the insight into prepare_field vs. load_field. I switched to prepare_field for this conditional disabling.
I remembered I have a staging site that’s on 6.2.2 .. the problem does in fact appear to be the 6.2.3 update, in case anyone is facing this.