There are several bops which look like they should be subclassed differently. Look at the classes which directly extend IVValueExpression. Watch out for classes which implement INeedsMaterialization. This is NOT implemented by XSDBoooleanValueExpression, but it is implemented by AbstractLiteralBOp and by some subclasses of XSDBoooleanValueExpression.
DatatypeBOp and maybe some others should be optimized to take advantage of the LexiconConfiguration.
Put up a wiki page on how to write function bops. I believe that there was a great email on this topic a while ago. Link the wiki page from the main page of the wiki.