OP here - someone left a comment on the blog who's clearly more knowledgeable than I am. I'm copying it here:
The quotes are necessary if an atom starts with something
other than a lower-case character. Any unquoted token
that starts with an upper-case letter is a variable.
As for atomic_list_concat, it's an optimized library
function that requires the separator. It's certainly
possible to write an equivalent that is completely
flexible.