I only had a few minutes so I haven't thought on this deeply. Does this help?
Expression> exp1 = (list => list.Count > 0);
Expression> exp2 = (list => exp1.Compile()(list));
Expression, bool>> exp3 = (list => exp1.Compile()(list));
I kinda demonstrates what you want I think.