returns plan with the push down:
While the same query in a view does not:
The problem that CompareFunctionsProcessor waits for ConvertExpression but receives FunctionCall with convert function. If convert function first appears in filter it is re-presented as ConvertExpression (case without view). If convert function first appears in select is re-presented as FunctionCall for convert function (case with view). The reason of such difference is the appliance of the PreProcessLogicalRel visitor. The solution in this case would be to check FunctionCall in CompareFunctionsProcessor}} and if this function call for convert from function, process it as ConvertExpression.