Хубаво обобщение на най-добрите практики. Друга препоръка е никога да не изисквате ключовата дума „нова“. Използването на „нов“ изисква познания за вътрешните елементи на обектната фабрика, която се извиква. Освен това не позволява фабриката да бъде преработена по начин, който не изисква „нов“ — защото това ще развали целия съществуващ код!

Разбирам, че вашите примери използват „нови“ главно за илюстриране на стилове на параметри...

new Character(…)

В идеалния случай обаче това би било написано...

var foo = Character(…)

Когато е приложимо, фабричните функции могат да се самоинстанциират, като...

function Character(args) {
  if (typeof this !== Character) {
   return new Character(args)
  }
  ...

Това се препоръчва от много години и аз го следвам последователно. Въпреки това повечето разработчици, които познавам, не го следват или дори знаят за него! Затова редовно го споделям/популяризирам, заедно с другите добри практики, които изброявате.