infeval:true v. ev(%,infeval)



Is there any reason why

ev(...expression...,infeval)

should be strictly more powerful than

infeval:true;
...expression...;

For some reason, merely assigning infeval:true didn't produce the fully eval'ed expression, but ev(...expression...,infeval) did.