Oh ... while we're piling on here, it just sunk into me that mcv_get_match_bitmap is deciding what the semantics of an operator are by seeing what it's using for a selectivity estimator. That is just absolutely, completely wrong. For starters, it means that the whole mechanism fails for any operator that wants to use a specialized estimator --- hardly an unreasonable thing to do. For another, it's going to be pretty unreliable for extensions, because I do not think they're all careful about using the right estimator --- a lot of 'em probably still haven't adapted to the introduction of separate <= / >= estimators, for instance.
The right way to determine operator semantics is to look to see whether they are in a btree opclass. That's what the rest of the planner does, and there is no good reason for the mcv code to do it some other way. regards, tom lane