Добавляя id:GLO|, вы уже указываете «только в книге GLO», поэтому нет смысла использовать другой маркер, если только вы не хотите отформатировать его иначе.
Даже если вы хотите отформатировать \m иначе в GLO, вы все равно можете оставить USFM без изменений и отформатировать маркер id:GLO|m. Единственная причина, по которой я бы использовал специальный маркер, — это если он «по своей сути» не является \m.
Кстати, \penalty применяется точно в том месте, где он встречается, будь то в горизонтальном режиме (разбивка строки текста на абзацы) или в вертикальном (разбивка абзацев на страницы).
Поскольку в конце \k мы находимся в горизонтальном режиме, вставка после \k говорит «не начинай новый абзац здесь». Затем TeX встречает \p или \m, в определении которых есть «Если мы находимся в горизонтальном режиме, заполните абзац тем, что было указано, и \penalty -10000», и поэтому он разбивает там (даже если не было заполнения в конце абзаца, штрафы не накапливаются, поэтому он послушно не разобьет на 10000 и послушно разобьет на -10000).
Кстати 2, не поддавайтесь искушению пытаться создать хук для вставки разрыва абзаца после стиля символа. Я пробовал несколькими способами и пришел к выводу, что код становится действительно очень запутанным, если вы просите его настроить новый абзац, пока он обрабатывает конец стиля символа.
By adding the id:GLO| you are already specifying ‘only in the GLO book’, so there’s no benefit to using another marker, unless you want to format it differently.
Even if you want to format \m differently in GLO, you can still leave the USFM unchanged, and format the marker id:GLO|m The only reason I’d use a special marker would be if it’s not a \m ‘at heart’.
FWIW, \penalty applies at exactly the place it’s met, whether that’s in horizontal (breaking a line of text into paragraphs) or vertical (breaking paragraphs into pages).
Since at the end of the \k it’s in horizontal mode, inserting it after the \k says ‘don’t start a new paragraph here’. TeX then meets the \p or \m which includes in its definition “If we are in horizontal mode, fill the paragraph with whatever has been specified and \penalty -10000”, and so it breaks there instead (even if there were no end-of-par fill, penalties are not cumulative, so it would obediently not break at the 10000 and obediently break at the -10000).
FWIW2, Don’t get tempted to try to make a hook to try to insert a paragraph break after a character style. I tried it several ways, and concluded that it just gets the code really really confused if you ask it to set up a new paragraph while it’s processing the end of a character style.