How does kiCAD / eeschema merge multiple wire labels into the netlist?
That is correct.  The netlist exporter for all netlist types selects a single, best (i.e. first) netname from the labels.  If no label exists, it will call it "NET-XXXX" where XXXX is an incremental number.

If you wanted to have multiple names, I would suggest you use a global label of "net42_PWM" or a similar concatenation.  The naming priority goes: global, local at higher hierarchy (close to the root sheet) and finally alphabetical.

If you have two local labels "net42" and "PWM", just attach a global label to either net with the concatenated name.