I understand the inconsistency. Maybe I'd be happier if some of the functionality of ev was
split into functions with clear semantics. Possibly
(%i7) '(lambda([x],4))(x)$
(%i8) ev(%,'lambda);
(%o8) 4
is clear enough.
I'm OK with using ev(XXX, 'lambda) to my favorite idiom-consistency is good.
--Barton
________________________________
Another example of how (B) is inconsistent with other cases of subst:
subst( print , 'f , f(23) ) => print(23) <<< does not print because it does not eval
subst( lambda([x],print(x)), 'f, f(23) ) => 23 <<< prints and returns 23 because it does eval