Я всегда Вашим скриптом ставил неразрывный пробел до тире и обычный пробел - после. В результате тире никогда не прыгает в начало строки, и иногда попадает в конец строки, без применения знака "Дополнительное начало новой строки". Не всегда, правда, получаются одинаковыми размеры промежутков до и после тире, но редактора это устраивает, кроме совсем не красивых случаев. Поэтому в моем случае этот знак лишний. Убираю его через поиск-замену.
Пробел до и после тире -- это некрасивая вёрстка. Для широких русских букв, длинного тире сложились правила оформления текста, не нам их менять или отменять. Не, без обид lmn1, но в хорошо сделанных русских текстах не должно пространство до и после тире быть равным пробелу. В горячем наборе для офомления этого пространства использовалась двухпунктовая шпация. Вместе с полуапрошами соседних литер создавался воздух между буквой и тире, между тире и буквой. И этот воздух был несколько меньше ширины пробела. (Кстати, в американской типографике тире вообще не отбивается от слов, между которыми оно стоит. О той типографике когда-то была статья в InDesign Magazine)
В кампьютерном наборе двухпунктовую шпацию легко не поставишь, поэтому скрипт предоставляет возможность определить масштаб пробелов до и после тире. Такая своеобразная имитация классической двухпунктовой шпации. И только в случае использования обычных пробелов они масштабируются, масштабы в символьных стилях 'myHorizontalScaleForEmDashSpaceBefore' и 'myHorizontalScaleForEmDashSpaceAfter'.
Если используются шпации, на четверть, одну шестую, и пр., то они, конечно, не масштабируются. Да, шпациями тоже можно сделать воздух до и после тире меньше ширины обычного пробела. И после второй шпации ставится служебный символ нулевой ширины с кодом 0x200B, чтобы тире имело возможность остаться на правом краю полосы набора.
Если практиковать неразрывный фиксированный пробел до и обычный пробел после, то на узких колонках возможны случаи, что воздух до и после тире будет неодинаковый. Это косяк верстальщика, даже если редактор этого не заметит. Чтобы такого не было, и введена опция "одинаковые шпации для тире".
Если до и после тире используются обычные пробелы, что правильно, то скрипт оформит текст так, чтобы тире не оказалось в начале строки.