Why do I always do this to myself? Send a mail, then work out the answer...
But I have no idea why that works, and was hoping someone could explain to me: 1. What is \thfb ?
thTMPDIR\th_enc.tex \def\mainfont{\thfb} It is telling it to use TeX's "mainfont". There are also some others defined in that file, like \rm which can be used instead of \thfb
2. Why does it need that, and not a space?
Because it used to default to using the mainfont, now it defaults to using no font.
3. How come it works without the whitespace, when plaintext could be anything, and that could construct a btex like: \thframed {\thnormalsize\thfbfoo} I would have expected \thfbfoo to be a command, but it seems to know that it is "\thfb" and "foo", not a single command.
Because "foo" was numbers. \thfb123 = "\thfb" and "123", while that is not the case for letters. With letters, they are all assumed to be part of the command. Therefore it needs a space so it knows where the command name ends.
4. Is there a better way to construct a btex "string" that can be used to create a p_label.urt piece of text that can work with the p_label_mode_passageheight style?
Leaving this question open, because I don't have an answer.