Syntax quoted lists can return nil if only empty seqables are spliced into it:
Clojure 1.12.5
user=> `(~@[])
nil
user=> `(~@[] ~@[])
nil
However, the implementation then ensures syntax-quoted empty lists are not nil:
Clojure 1.12.5
user=> `()
()
ClojureScript returns an empty list in these cases:
`(~@[])
=> ()
`(~@[] ~@[])
=> ()
The expansion of syntax quote itself is not necessarily a problem if it differs between platforms, but here the evaluation of the expansion differs. This can cause macros to behave differently between platforms (e.g., JVM Clojure vs bootstrapped cljs).
This behavior seems to be present with all versions of Clojure including 1.0.0, so perhaps the ship has sailed here. I went searching for an existing issue or documentation and AFAICT only CLJ-1425 mentions this oddity.
The reference docs for Syntax Quote also seem to contradict this behavior:
For Lists/Vectors/Sets/Maps, syntax-quote establishes a template of the corresponding data structure.