A pitfall of uniform syntax is less margin for error. Static typechecking can help shore that up, as can lint-pickers. It seems to be uniform that way. So it should make a good example for non-Lispers. This could be interesting.
Icon is another example of an expression language with a heavy reliance on side effects.
Uniformity and standard interfaces are really, really important. Of course, there's a lot of lore from the software-engineering viewpoint on this. Languages have broader application than 'application' programs, and so more people bang on them. A limited form of local variable may be the general solution to the third problem, for all function languages. The unreadability of an unfamiliar notation can be exacerbated by ignorance of the 'right' way to format programs for that notation.