You're framing this as a question of syntax preference, but actually the whole point of template tags is to cater to a very specific need: the ability to sanitize an interpolated value.
In this specific example, let's say you have:
sql.from`book`.return`distinct ${field}`
You don't want a sql injection to occur if somehow `field = 'author'; drop table book; --` or similar.
With a plain function call, the library would have no way of knowing what to sanitize.
"Why do some functions require parenthesis and some don't?" "When do I need to use parenthesis?"
It's just unnecessarily confusing.