While trying to implement something like TEX’s \llap I came across an odd behavior with endash in which a narrow box forces the rest of the text to the next line, leaving the dash above. This is best displayed by running the following snippet:
#for c in ("A", sym.dash.en, "+", sym.dash.em, sym.hash) [
#c: #h(1cm) #box(width:0pt)[#text(fill: red)[#align(right)[#c~]]] XXX\
]
I would say that it’s understandable, since I don’t know what is supposed to happen to the content inside box(width: 0pt). You can open an issue about it. It would be great if it behaved consistently.