You have to be careful there. The and expression of one arg you mentioned won't cost anything because (and expr) will evaluate to expr. So you need to be sure you are looking at the final expansion, which is not necessarily what macex gives you, because macex doesn't expand nested macros.
Also, the general idea "shorter is better" doesn't really apply to expanded code, since often more optimized code is longer than simpler code, and being expanded code, it doesn't usually need to be read by humans.
Now that said, your proposed aand still doesn't work, but this particular issue isn't your problem.