Lazy coalesce

I was hoping to do something like:

coalesce(
  head([(n1)-[r:FIRST_REL]->(n2) | r]),
  head([(n1)-[r:SECOND_REL]->(n2) | r]),
  head([(n1)-[r:THIRD_REL]->(n2) | r])
) AS r

to get the first of similar relationships that might exist between two nodes. This works, but from the PROFILE of the query it looks like all the head()s are running. I was wondering if anyone could confirm or deny that coalesce would lazily evaluate the options? Would rather not check second rel if first is found, etc.