After we discussed this, I realized there's a slightly better way to do this and get rid of the instanceof check in doing so:

* Add a boolean isConstant arg to constructor:

        RowValueConstructorExpression(List<Expression> l, boolean isConstant) {
            super(l);
            if (isConstant) {
                 literalExprPtr = new ImmutableBytesWritable();
                 this.evaluate(null, literalExprPtr);
            } else {
                 literalExprPtr = null;
            }
        }

* From ExpressionCompiler.visitLeave(RowValueConstructorParseNode node) use this new constructor instead:
      
            Expression e = new RowValueConstructorExpression(l, node.isConstant());