With the sign() function, the zoom property can now have computed values that depend on the computed font and font selection. Also, the zoom property affects font selection, which means the spec needs to say whether font relative units in zoom are evaluated against the parent font or the same element's font.
Chrome and Safari behave differently for this case (Chrome uses the parent font):
<!DOCTYPE html>
<style>
#target {
font-size: 30px;
zoom: calc(1 + 0.5 * sign(20px - 1em));
}
</style>
<div id="target">Zoom</div>
<script>
console.log(getComputedStyle(target).zoom);
</script>
@chrishtr @emilio