There isn't any problem with this Clojure macro. If you would like to see problems with Clojure, take a look at keep function in core.clj.
There is a classic function:
(define (filter fn l)
(cond ((null? l) '())
((fn (car l)) (cons (car l) (filter fn (cdr l))))
(else (filter fn (cdr l)))))
The point is that stuffing more data-structures into a lisp ruins it. Somehow switching to the prefix notation and adding parenthesis doesn't transform Java to Lisp.For the second piece of code - are't semicolons and comas somehow redundant?
Moreover, what is the point of writing something this way?